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 表名;

标签:
0
投稿

猜你喜欢

  • asp图片加水印的功能代码

    2011-02-05 11:02:00
  • ASP基础教程:常用的 ASP ActiveX 组件

    2008-10-14 15:15:00
  • HTTP 错误 500.100 - 内部服务器错误 - ASP 错误

    2008-09-12 13:07:00
  • 长期使用中型Access数据库的一点经验

    2007-12-21 13:23:00
  • asp如何防止计数器刷新计数?

    2009-11-22 19:19:00
  • asp如何创建Word 文件?

    2009-11-14 20:47:00
  • 2011年网页设计发展趋势

    2011-01-10 20:45:00
  • 简易CSS相册源代码

    2008-04-18 12:28:00
  • 符合标准的纯CSS三 级弹出菜单

    2008-01-06 15:34:00
  • 针对SQL Server中业务规则链接的分析

    2009-01-20 11:43:00
  • asp读取数据库中数据到数组的类

    2007-09-16 18:19:00
  • tab(标签)在使用时的禁忌

    2009-04-16 13:06:00
  • css可以给img元素设置背景图

    2008-09-29 15:35:00
  • 何处安放的Loading

    2011-08-10 19:11:20
  • min-height 的原始实现方式

    2008-06-29 15:04:00
  • asp如何在聊天室实现趣味答题并计分功能?

    2010-06-18 20:00:00
  • 将图片读入到Dom中,并将其存为xml文件

    2008-09-04 11:24:00
  • 用文本+ASP打造新闻发布系统

    2009-02-02 09:31:00
  • 创建IE各版本专属CSS方法

    2007-09-27 12:16:00
  • 一个网页设计师的成长经历

    2008-05-27 12:38:00
  • asp之家 网络编程 m.aspxhome.com