做数据库操作时发现Microsoft OLE DB Provider for SQL Server 错误 \'80040e31\' [ODBC SQL Server Driver]超时已过期这种问题,经过分析如下

如果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。

09-13 19:53