VB连接SQLSERVER2000超时问题?急!

时间:2022-11-24 07:05:40
小弟是刚入行的新手,恳请各位高手赐教。
    VB应用程序在sub main()用一全局变量获得数据库连接,数据库大约有50万条记录。查询时使用存储过程。刚进入程序主界面运行稳定,但当多个客户端(10个左右)访问时,有的客户端出现“连接超时“的对话框。小弟请各位高手分析一下出现此问题的可能的因素。还有,为什么客户端获得的数据库连接会突然出现连接超时?

10 个解决方案

#1


1:企业管理器->服务器->属性->连接->查询超时设定->改为0或一个较大的数
2: cn.connectiontimeout =  1000

#2


选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->查询超时-->改为0

选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->连接超时-->改为0


ADO

NonnectionTimeout 连接时间长一点;
CommandTimeout 执行时间长一点!

#3


谢谢两位!但小弟不明白,为什么所有客户端都已获得数据库连接,但一旦他们同时查询或插入时会有的客户端出现连接超时问题。难道数据库服务器因为负荷过大,断开了同某客户端的连接。请高手指教?

#4


你的问题可能是命令处理超时而不是连接超时。当你处理的时候,由于多个客户端使用同一个资源,就会发生等待的情况,所以会出现超时。你可以修改COMMAND的超时时间进行处理。

#5


因为数据的实际处理不可能同时处理.所以有多个用户并发要求处理数据时,SQL会对处理的数据按照先后排序处理,这时,如果某个操作步骤要长时间,就会出现超时的问题.

#6


程序中用ADO连接,应该这样设置:

ConnectionTimeout=0   连接超时时间;
CommandTimeout=0      处理语句的超时时间;

为0是等待最长时间.

#7


Thanks to zjcxc(邹建),pengdali(大力 V3.0)

#8


右击
SQL Server Enterprise Manager ->Microsoft Server Group ->SQL Server Group ->your Registration ->Property->connections,
设置query time-out参数为0

#9


因为数据的实际处理不可能同时处理.??
MSSQLSERVER是可以同时处理不同的数据的!!!

ConnectionTimeout=0   连接超时时间;
CommandTimeout=0      处理语句的超时时间;

配置很长的时间并不能解决根本的问题,你要分析是何原因,是你的MSSQLSERVER的处理速度,i/o的处理速度,T-SQL的教本需要优化...

#10


1.你可以将数据库的恢复模式该为简单,这样可以减少对I/0的读写。
2.优化你的stored procedure找出在并发是可能造成DEADLOCK,WAIT的原因。
3.学会用PROFILER,SYSTEM PROFERMORMANCE UIOLITY,FN_TRACE_...等工具分析。
4.可以适当的增加数据的冗余,提高并发的性能。
5.可以将OS的pagefile和database的数据文件放在不同的磁盘。

#1


1:企业管理器->服务器->属性->连接->查询超时设定->改为0或一个较大的数
2: cn.connectiontimeout =  1000

#2


选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->查询超时-->改为0

选中Microsoft SQL Servers-->工具栏,工具-->选项-->高级-->连接超时-->改为0


ADO

NonnectionTimeout 连接时间长一点;
CommandTimeout 执行时间长一点!

#3


谢谢两位!但小弟不明白,为什么所有客户端都已获得数据库连接,但一旦他们同时查询或插入时会有的客户端出现连接超时问题。难道数据库服务器因为负荷过大,断开了同某客户端的连接。请高手指教?

#4


你的问题可能是命令处理超时而不是连接超时。当你处理的时候,由于多个客户端使用同一个资源,就会发生等待的情况,所以会出现超时。你可以修改COMMAND的超时时间进行处理。

#5


因为数据的实际处理不可能同时处理.所以有多个用户并发要求处理数据时,SQL会对处理的数据按照先后排序处理,这时,如果某个操作步骤要长时间,就会出现超时的问题.

#6


程序中用ADO连接,应该这样设置:

ConnectionTimeout=0   连接超时时间;
CommandTimeout=0      处理语句的超时时间;

为0是等待最长时间.

#7


Thanks to zjcxc(邹建),pengdali(大力 V3.0)

#8


右击
SQL Server Enterprise Manager ->Microsoft Server Group ->SQL Server Group ->your Registration ->Property->connections,
设置query time-out参数为0

#9


因为数据的实际处理不可能同时处理.??
MSSQLSERVER是可以同时处理不同的数据的!!!

ConnectionTimeout=0   连接超时时间;
CommandTimeout=0      处理语句的超时时间;

配置很长的时间并不能解决根本的问题,你要分析是何原因,是你的MSSQLSERVER的处理速度,i/o的处理速度,T-SQL的教本需要优化...

#10


1.你可以将数据库的恢复模式该为简单,这样可以减少对I/0的读写。
2.优化你的stored procedure找出在并发是可能造成DEADLOCK,WAIT的原因。
3.学会用PROFILER,SYSTEM PROFERMORMANCE UIOLITY,FN_TRACE_...等工具分析。
4.可以适当的增加数据的冗余,提高并发的性能。
5.可以将OS的pagefile和database的数据文件放在不同的磁盘。