Sql Server 数据库超时问题的解决方法
作者:yzk 时间:2009-01-13 14:11:00
1.由于数据库设计问题造成SQL数据库新增数据时超时
症状:
Microsoft OLE DB Provider for SQL Server 错误 '80040e31' ([ODBC SQL Server Driver]超时已过期);
服务器上看CPU、内存占用率很低;
事件日志中提示: 数据库 '*********' 中文件 '***********' 的自动增长在 453 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。
原因:
数据库设置时,[文件增长]按百分比来增长,当数据库文件很大时(1G以上),新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。
解决方法:
把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。
2.SQL Server数据库超时设置
修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒。
企业管理器中的设置:
A、在企业管理器中,选择菜单上的"工具",再选择"选项";
B、在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;
C、在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。
查询分析器中的设置:
单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0。
3.查询语句时超时
原因分析:
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。
另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。
而造成超出估计值那么多的原因有两种可能:
一是估计时间不准确;
二是sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。
解决办法:
A.优化语句,创建\使用合适的索引;
B.解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名;
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
MySQL的中文UTF8乱码问题
python特效之字符成像详解
![](https://img.aspxhome.com/file/2023/0/80400_0s.jpg)
Python小白垃圾回收机制入门
Python虚拟环境venv用法详解
![](https://img.aspxhome.com/file/2023/7/121057_0s.png)
python实现简单登陆系统
W3C优质网页小贴士(一)
![](https://img.aspxhome.com/file/UploadPic/up/2008040712541063.gif)
python如何寻找主串中所有指定子串下标
![](https://img.aspxhome.com/file/2023/3/125043_0s.png)
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
![](https://img.aspxhome.com/file/2023/7/107577_0s.png)
如何在django里上传csv文件并进行入库处理的方法
![](https://img.aspxhome.com/file/2023/7/64737_0s.png)
go语言reflect.Type 和 reflect.Value 应用示例详解
postman和python mock测试过程图解
![](https://img.aspxhome.com/file/2023/2/70152_0s.png)
认识延迟时间为 0 的 setTimeout
sqlserver分页查询处理方法小结
在ASP中连接使用数据库
mysql 5.7.14 下载安装、配置与使用详细教程
Python实现的径向基(RBF)神经网络示例
mysql三种批量增加的性能分析
Go语言导出内容到Excel的方法
MySQL 启动成功但未监听端口的解决方法
![](https://img.aspxhome.com/file/2023/2/112632_0s.png)