解决SQL查询总是 超时已过期
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 秒。
企业管理器中的设置:
- 在企业管理器中,选择菜单上的"工具",再选择"选项";
- 在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡;
- 在"连接设置"下的"登录超时(秒)"右边的框中输入一个比较大的数字,如 30。
查询分析器中的设置:
单击“工具”->"选项"->"连接"; 将登录超时设置为一个较大的数字,连接超时改为0。
3.查询语句时超时
原因分析:
查询超时一般来说首先要从sql语句和数据表的结构上找原因,优化sql语句和为数据库的查询字段建索引是最常用的办法。
另外,数据库的查询超时设置一般是sqlserver自己维护的(在你没有修改query wait配置前),只有当你的实际查询时间超过估计查询时间的25倍时,才会超时。
而造成超出估计值那么多的原因有两种可能:
- 估计时间不准确;
- sql语句涉及到大量占用内存的查询(如排序和哈希操作),内存不够,需要排队等待资源造成的。
解决办法:
- 优化语句,创建\使用合适的索引;
- 解决第一个问题的方法,更新要查询表的索引分发统计,保证估计时间的正确性,UPDATE STATISTICS 表名;
- 增加内存
如果想手动设置查询超时,可以使用以下语句:
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 '以秒为单位Conn.open DSNtest%>
B. 如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:
Dim cn As New ADODB.ConnectionDim rs As ADODB.Recordset. . . cmd1 = txtQuery.TextSet rs = New ADODB.Recordsetrs.Properties("Command Time Out") = 300'同样以秒为单位,如果设置为 0 表示无限制rs.Open cmd1, cnrs.MoveFirst. . .
另外,一些硬件及网络方面的原因也可能造成SQL数据库连接超时.
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 表名; 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 '以秒为单位Conn.open DSNtest%> B. 如果遇到查询超时的错误,我们可以在程序中修改 Recordset 对象的超时设置,再打开结果集。例如:Dim cn As New ADODB.ConnectionDim rs As ADODB.Recordset. . .cmd1 = txtQuery.TextSet rs = New ADODB.Recordsetrs.Properties("Command Time Out") = 300'同样以秒为单位,如果设置为 0 表示无限制rs.Open cmd1, cnrs.MoveFirst. . . 另外,一些硬件及网络方面的原因也可能造成SQL数据库连接超时.
转载于:https://www.cnblogs.com/carekee/articles/1630492.html
解决SQL查询总是 超时已过期相关推荐
- mysql 查询语句超时_解决SQL查询总是 超时已过期
1.由于数据库设计问题造成SQL数据库新增数据时超时 症状: Microsoft OLE DB Provider for SQL Server 错误 '80040e31' ([ODBC SQL Ser ...
- [Microsoft][ODBC SQL Server Driver ]超时已过期的解决过程和方法
环境 : OS: window2000 server Database: Sql Server 2000 中文企业版 + sp4 客户和服务均在一台机上运行 ...
- sql 查询超时已过期_监视来自SQL Server代理作业的查询超时过期消息
sql 查询超时已过期 SQL Server provides you with a good solution to automate a lot of your administrative ta ...
- 登陆SQL Server 2000数据库提示超时已过期的解决方法
登陆SQL Server 2000数据库提示超时已过期的解决方法 参考文章: (1)登陆SQL Server 2000数据库提示超时已过期的解决方法 (2)https://www.cnblogs.co ...
- 关于查询报表总是“超时已过期“的问题解决
关于查询报表总是"超时已过期"的问题解决 参考文章: (1)关于查询报表总是"超时已过期"的问题解决 (2)https://www.cnblogs.com/ra ...
- nc提示java过期_用友U8 软件经常出现“超时已过期”的提示
用友U8 软件经常出现"超时已过期"的提示用友U8 软件经常出现"超时已过期"的提示 问题原因:同解决方案 解决方法:请将SQL server中的属性中的效超时 ...
- 用友文件服务器不存在,用友T6软件备份提示超时已过期,错误'53'文件不存在
用友t6软件备份提示超时已过期,错误'53'文件不存在备份提示超时已过期,错误'53'文件不存在 备份提示超时已过期,错误'53'文件不存在 原因分析:后台表ua_log日志记录太多. 问题解答:清除 ...
- 完美解决谷歌浏览器 adobe flash player 已过期
很多人在win10操作系统上更新了10月24日上线的最新版谷歌浏览器(版本号:54.0.2840.71)后发现,在谷歌浏览器上不能播放网络视频了,并提示 adobe flash player 已过期. ...
- Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005‘[Microsoft][ODBC SQL Server Driver]登录超时已过期
解决办法:重启小旋风AspWeb服务器 或者重启电脑
最新文章
- Geomagic Freeform Plus 2019中文版
- vim block vim_我如何学会爱Vim
- 华三交换机ping大包命令_华三交换机常用命令
- php 模拟请求工具,http-mock-master模拟HTTP请求库
- matlab矩阵内存预分配
- halcon 旋转_HALCON高级篇:3D相机标定
- 【待补充】[Linux] nc
- python训练Faster RCNNC++调用训练好的模型进行物体检测-基于opencv3.4.3(超详细)
- 地点坐标拾取,经纬度精确到小数点后6位
- 共享单车信号服务器,【严肃科普】【严肃科普】共享单车靠什么黑科技远程定位开锁?...
- Linux仿站工具,20 款优秀的 Linux 终端仿真器
- Protobuf使用手册--中文版
- 【视频剪辑】Pr剪切素材时常用快捷键及素材快进快退
- ESX VMware是什么
- 前台传入数据后台被转义问题解决
- 提升目标检测模型性能的tricks
- 什么是 Bluetooth 个人区域网 (PAN)?
- S32K144的FLASH中的SDK函数(FLASH_DRV_EraseSector)不能正常执行
- Linux横向之CSK靶机攻防
- [ALI-签约代扣] 小程序环境下的签约代扣
热门文章
- 在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:...
- 通过导入txt数据画出python turtle图形_【Python】txt文件读取绘画
- fastdfs清空_FastDFS安装及使用(开山篇)
- 三菱880彩铅和uni的区别_冷灰素描纸与彩铅、色粉笔结合,一种复古味道
- JDK时区与电脑系统时区不一致,导致时间new date不对
- JSTL (JSP标准标签库)
- MySQL笔记(五)索引 index
- Focal Loss 的Pytorch 实现以及实验
- margin 塌陷bug 触发bfc
- 函数【Python】