为何第一次连接sql2000时会很慢?
就一个窗体,代码如下
没有做任何操作,只是单纯的连接数据库,编译成exe以后
第一次启动时很慢,要1分钟左右,窗体才能弹出来, 关掉立刻再次运行exe,则会正常的瞬间连接上并显示窗体
如果关掉过几分钟再运行exe,则又回到了很慢的状态
请问有无解决方法?
Dim conn As ADODB.Connection
Private Sub Form_Load()
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=DBTest;Data Source=192.168.1.159"
conn.ConnectionTimeout = 50
conn.Open
End Sub
[解决办法]
数据库连接是有不少开销的, 包括后台数据库引擎等等.
刚刚关闭程序的时候,加载的那些链接库还在内存里面, 所以再次连接就比较快了.
等过了一段时间之后, 可能这些库就从内存卸载了, 然后再次一一调用就慢了.
这就跟机器预热一样.
而且你的代码只贴了连接数据库的这一部分, 并不能证明在首次加载的时候就一定是因为这里慢而影响了窗体加载.
给你个办法可以试试看到底是慢在哪里:
你在IDE中按F5启动程序, 然后在等待时间很长的期间按"Ctrl+Break" 就是键盘右上角PrtScn边上那个键.
然后程序就会暂停运行,并且象设置了断点一样高亮出正在运行的那一句代码了.
[解决办法]
汗一个.
代码上没啥问题,你看看网络连接里的协议是不是有问题,记得协议问题会影响网上邻居访问速度,是否也与你的问题相关.