十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如何捕捉SQLServer超时异常问题,怎么解决
创新互联建站服务项目包括华池网站建设、华池网站制作、华池网页制作以及华池网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,华池网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到华池省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
adoconnection1.CommandTimeout = 0命令执行超时时间(以秒为单位),设置为零说明无限制adoconnection1.ConnectionTimeout = 0连接数据库超时时间(以秒为单位),设置为零说明无限制
在数据库链接没有问题的前提下,这个属于数据库请求超时,关键点是你的sql语句,断点跟踪把最终要执行的sql语句复制下来在sql里面执行一下试试,本人也碰到的统样的问题,两个视图和一个表联合查询,在sqlserver2008里面执行需要50多秒才得到结果,建议优化一下sql语句,提高sql语句执行的效率。
如何设置SQLServer的超时时间?
SqlCommand sqlcommand = connection.CreateCommand();
sqlcommand.CommandTimeout = 60;
//默认时间为 30 秒
检查方法:
1。在cmd窗口运行:netstat -an 看是否有以下端口正在监听的信息
TCP 192.168.10.1:1433
0.0.0.0:0
LISTENING
2。防火墙有没有把端口限制了
3。服务器网络使用工具里面的TCP/IP属性有没有选了“隐藏服务器”
有可能是商业软件与服务器的连接用的不是1433端口
在客户端要改成相应的端口,比如上面的1025
win2003服务器,就一定要注意SQLSERVER2000的SP3A或SP4补丁是否打上了.
WIN2003操作系统默认时是1433端口不处于监听状态的.
也可以再试试:配置一下客户端
SQL客户端网络配置—别名—添加(不在同一网段的SQL服务器)IP/机器名
细心一点检查一下吧,再给个方法看看:
默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,
而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).
具体步骤为:
企业管理器中的设置:
1.在企业管理器中,选择菜单上的"工具",再选择"选项"
2.在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡
3.在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 20.
查询分析器中的设置:
工具 -- 选项 -- 连接 -- 将登录超时设置为一个较大的数字
我也遇到过这个问题,你可以试着打开你的sql客户端,连接下服务器上的数据库,估计会直接出现这个错误提示,然后你把连接时间改成30秒,或者更长一些就能够登录到服务器上的sql server.
解决方法就是把项目配置文件中的访问超时时间设置长一些.
我遇到这个问题时是因为我的项目发布在虚拟机上,所以速度比较慢,访问总是超时,去试试吧,这个方法或许能解决你的问题.
不行的话就在代码上设置command的timeout时间.
原因分析:
查询超时一般来说首先要从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