要是你使用了事务那就得尽量启用短事务长事务很容易导致数据库中 *** 作的表被锁死。你可以在数据库中使用sp_who查询出你正在使用的数据库是否有sleeping的或者AWAITING COMMAND的然后调试你的代码看看是什么原因导致出现这个问题的。还有就是可能因为你使用的sql语句查询数据量过大而且使用过多的子查询导致sql语句执行效率很低然后会是数据库无法及时响应。这个是我个人的经历。具体其他的我就不是很清楚了 希望能够帮到你
方法1:修改SERVICE_NAME为SID;
方法2:删掉sqlnetora,然后重试;
方法3:试试telnet 17020519947 1521 看看通不通,不通的话可能是服务端防火墙,可能是listener设置不对。
原因分析:
查询超时一般来说首先要从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
以上就是关于asp.net连接数据库超时的原因是什么全部的内容,包括:asp.net连接数据库超时的原因是什么、Oracle 10g 数据库连接超时、sql 数据库连接超时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)