连接SQl Server时 出现超时时间已到,在 *** 作完成之前超时间已过或服务器未响应是设置错误造成的,解决方法为:
1、连接数据库的方法代码。
2、实现实例的全局配置的方法代码。
3、实现在 A 服务器实例执行连接服务器的查询15秒等待后报错代码如下。
4、实现在A服务器更改远程连接超时值为 5 秒在查询的代码如下。
5、确定后默认先尝试连接结果10秒报错代码如下。
6、使用该连接服务器的等待 10 秒则停止报错了效果如下。
所谓的数据库超时就是你的程序在向数据库请求数据时所用的时间超过了限定时间,这个时间是可以设置的.楼主自己查一下(我好长时间不做ASP了,记得好像在Command对象里),但产生这个问题的原因可能是你的程序有问题.只作参考.原因分析:查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。
另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。
而造成超出估计值那么多的原因有两种可能:
一是估计时间不准确;
二是sql语句涉及到大量占用内存的查询(如排序和哈希 *** 作),内存不够,需要排队等待资源造成的。
解决办法:
A.优化语句,创建/使用合适的索引
B.解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名
C.增加内存
如果想手动设置查询超时,可以使用以下语句:
sp_configure 'show advanced options', 1 GO RECONFIGURE GO sp_configure 'query wait', 2147483647 GO RECONFIGURE GO
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)