文档介绍:SQL 数据库超时过期问题的解决方案减小字体增大字体如果 SQL 的数据库越来越多,有时候会遇到读取超时,死锁等一大堆问题, 按经验来说,数据结构设计不合理,经常使用视图等原因都有,那些怎么解决呢? 下面看文章 1. 由于数据库设计问题造成 SQL 数据库新增数据时超时症状: Microsoft OLE DB Provider for SQL Server 错误'80040e31' ( [ODBC SQL Server Driver] 超时已过期) ; 服务器上看 CPU 、内存占用率很低; 事件日志中提示: 数据库'*********' 中文件'***********' 的自动增长在 453 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。原因: 数据库设置时,[ 文件增长] 按百分比来增长, 当数据库文件很大时(1G 以上), 新增操作都会报超时,而这时候其实 CPU 、内存占用率都非常非常的低。解决方法: 把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。 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. 如果遇到连