MSSQL数据库超时的原因与解决方法
MSSQL数据库超时的原因与解决方法【199cloud艾娜小编】
如果SQL的数据库越来越多,有时候会遇到读取超时,锁等一大堆问题,按经验来说,数据结构设计不合理,经常使用视图等原因都有,那些怎么解决呢?
1、由于数据库设计问题造成SQL数据库新增数据时超时
症状:
A、
Microsoft OLE DB Provider for SQL Server 错误 '80040e31'
[ODBC SQL Server Driver]超时已过期)
B、服务器上看CPU、内存占用率很低;
C、事件日志中提示: 数据库 '*********' 中文件 '***********' 的自动增长在 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 表名;
C、增加内存。
如果想手动设置查询超时,可以使用以下语句:
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'query wait', 2147483647
GO
RECONFIGURE
GO
4、应用程序连接失败
故障:
在应用程序中我们也会遇到类似的错误信息,例如:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC SQL Server Driver]超时已过期
解决方法:
A、如果遇到连接超时的错误,我们可以在程序中修改 Connection 对象的超时设置,再打开该连接。例如:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase"
Conn. Properties("Connect Timeout") = 15 '以秒为单位,0表示不限制
Conn.open DSNtest
%>
B、如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
cmd1 = txtQuery.Text
Set rs = New ADODB.Recordset
rs.Properties("Command Time Out") = 300
'同样以秒为单位,如果设置为 0 表示无限制
rs.Open cmd1, cn
rs.MoveFirst
MSSQL数据库超时的原因与解决方法相关推荐
- 数据库--死锁产生原因及解决方法
数据库与操作系统一样,是一个多用户使用的共享资源.当多个用户并发地存取数据时,就会产生多个事务同时存取统一数据的情况.如果对并发操作没有相应的控制就可能会导致读取和存储不正确的数据,破坏了数据库的一致 ...
- (转)SQL Server数据库复制错误的原因及解决方法
在使用SQL Server数据库中,有时在复制时会出现错误,下面就为你分类介绍SQL Server数据库复制错误的原因及解决方法,希望对您学习SQL Server数据库有所帮助. 错误 消息 MSSQ ...
- SQL Server数据库查询速度慢的原因和解决方法
SQL Server数据库查询速度慢的原因和解决方法 参考文章: (1)SQL Server数据库查询速度慢的原因和解决方法 (2)https://www.cnblogs.com/MyChange/p ...
- Mysql 数据库锁表的原因和解决方法
Mysql 数据库锁表的原因和解决方法 参考文章: (1)Mysql 数据库锁表的原因和解决方法 (2)https://www.cnblogs.com/xinruyi/p/11108795.html ...
- 登陆SQL Server 2000数据库提示超时已过期的解决方法
登陆SQL Server 2000数据库提示超时已过期的解决方法 参考文章: (1)登陆SQL Server 2000数据库提示超时已过期的解决方法 (2)https://www.cnblogs.co ...
- mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法
mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法 参考文章: (1)mysql 直接从date 文件夹备份表,还原数据库之后提示 t ...
- mysql装不上怎么办_MySQL数据库之mysql安装不上怎么办 mysql安装失败原因和解决方法...
本文主要向大家介绍MySQL数据库之mysql安装不上怎么办 mysql安装失败原因和解决方法了 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. mysql数据库安装不了了!my ...
- ASP.NET常见错误,原因及解决方法(2003版)_不断更新.....
[标题] ASP.NET常见错误,原因及解决方法[错误提示] 异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败:Un ...
- MySQL局域网内访问慢的原因及解决方法
转载自 http://blog.csdn.net/tiantang_1986/article/details/76890178 MySQL局域网内访问慢的原因及解决方法. 出现原因:主要是因为DNS服 ...
最新文章
- RxJs map operator 工作原理分析
- 数据分箱6——分箱结果进行WOE转化
- 关于对玩过的游戏的想法汇总
- socket编程-客户端向服务器发送字符串,传文件
- 纯新手DSP编程--5.18--调试(续)
- 正则表达式在python中的应用_正则表达式:Python3中的应用简介
- 重置linux系统root密码,CentOS(Linux)重置root密码
- Windows 10正式版官方原版ISO镜像下载
- 2021年安全生产模拟考试(全国特种作业操作证电工作业-防爆电气模拟考试题库二)安考星
- easyui combobox 查询传递json对象
- 今天sql练习遇到的问题
- vol.178 美西自驾历险记 · 完结篇(下)
- 介绍一个python工程师必须掌握的 CentOS 命令,nohup
- 【webapp】开发手机版WEBAPP MOBILE APP
- 基于规则的动物识别系统(c++)
- openxml的视频教程
- 作为程序员,对中年危机的思考
- 利用python处理Excel表格中的销售数据
- 自动驾驶论文:FisheyeMODNet: Moving Object detection on Surround-view Cameras for Autonomous Driving (2019)
- tp5.1微信支付开发系列(一)
热门文章
- 聚合生态 深耕行业——2023用友生态峰会成功举办
- 2007年北京市职工年平均工资达39867元
- mac外接显示器经常没反应
- 名帖125 王宠 楷书《尚书》
- 逻辑思维和形象思维能力的并行
- php中的lt;?= ?gt;替换lt;?php echo ?gt;
- ALOAM试跑及程序注释
- 广西大学计算机科学与技术怎么样,广西大学计算机科学与技术专业考研难度分析-专业排名-难度大小...
- 【JMeter】JMeter如何模拟不同的网络速度
- Smarty教程[7]