数据库超时的其中一种情况

 

今天早上碰到了导致超时的一种不常见的特殊情况。特整理如下:
早上优快云的论坛回复和发帖都一直报超时,错误信息是最常见的那种:

Microsoft OLE DB Provider for SQL Server 错误 '80040e31'
超时已过期
/Expert/reply.asp,行 110

服务器上看CPU、内存,都非常非常的低呀,这么低的占用率也能导致超时,我晕。后来到处查看,后来在事件日志中看到一个非警告的日志:

事件类型: 信息
事件来源: MSSQLSERVER
事件种类: (2)
事件 ID: 17055
日期:  2005-8-23
事件:  9:39:00
用户:  N/A
计算机:  ********
描述:
5144:
数据库 '*********' 中文件 '***********' 的自动增长在 453 毫秒后已取消或出现超时。使用 ALTER DATABASE 设置更小的 FILEGROWTH 或设置新的大小。


我倒竟然是数据库文件在增加的时候超时了。而不是平常常以为的具体的SQL语句超时。把 FILEGROWTH 设置为一个更低的值,ok 一切都恢复了。

FILEGROWTH  的设置就是在数据库的 Enterprise Manager 中,对数据库的属性的如下窗口进行设置:

数据库中配置文件大小 

一旦你的数据库文件大了后,上述超时就可能出现。这时候不要简单地以为服务器压力太大了。也许就是你的一个设置导致了超时。

打印 | posted on 2005年8月23日 10:29 | Filed Under [ 数据库开发管理心得 ] | 收藏本页 (百度搜藏)(QQ书签)(Live收藏)(Google书签)(Yahoo书签)(新浪ViVi)(搜狐网摘)(365Key网摘)(天极网摘)(博采网摘)(和讯网摘)

反馈

Gravatar
#  re: 数据库超时的其中一种情况
默认SQL Server 在数据库文件满了后,是自动增加原数据库文件的10%大小,用来继续使用。

如果你的数据库文件很大了,这时候麻烦就来了,优快云 论坛的这次问题就是在增加这个数据库文件的时候超时了。

然后其它所有的新增操作都会报超时,而这时候其实CPU、内存占用率都非常非常的低。
2005/8/23 10:35 | ghj1976
Gravatar
#  re: 数据库超时的其中一种情况
解决方法就是把上述的文件增长这里设置为一个更低的百分比或者直接指定增加多少兆字节。

2005/8/23 10:36 | ghj1976
Gravatar
#  re: 数据库超时的其中一种情况
dba哪去了? :)
2005/8/23 10:38 | rIPPER
Gravatar
#  re: 数据库超时的其中一种情况
这是一个很土的问题,然而在企业的生产环境中经常遇到。不仅是数据文件满会导致此问题,日志文件满也一样。
某一条数据更新语句在数据库或日志文件即将满的时候执行,数据库增长的IO操作会导致延时,此延时会阻塞其他数据库操作,连锁反应,形成blocking。
其实此时找出一条正在阻塞的更新语句,在查询分析器中执行,此时是没有超市时间的。忍过几分钟,当这条语句执行完后,数据文件就会增长完成,所有的blocking也就解开了。
正如楼上的朋友所问,"dba哪去了?"。文件的监测和日志的truncate,本来就应该是dba常抓不懈的工作。
2005/8/23 13:36 | Jacob
Gravatar
#  re: 数据库超时的其中一种情况
其实此时找出一条正在阻塞的更新语句,在查询分析器中执行,此时是没有超市时间的。忍过几分钟,当这条语句执行完后,数据文件就会增长完成,所有的blocking也就解开了。
----------------------------
这句话好像不对,按照KB上的,这个申请文件增长的请求是被操作系统拒绝的,所以不是等几分钟执行完语句就能增长的。解决的方法还是把文件的增长大小设置为一个固定数值而不是百分比。
2005/8/23 23:39 | ocean
Gravatar
#  re: 数据库超时的其中一种情况
我还是不明白..那我要做的措施是什么?(针对这个情况)
2005/8/23 23:54 | Benny Ng
Gravatar
#  re: 数据库超时的其中一种情况
我在一年多以前就说过这个事情。
另外,用SQL2005就不容易遇到这个问题了哦。
数据库增加10G的大小也不过就是3秒钟。
2005/8/24 15:53 | 怡红公子
Gravatar
#  re: 数据库超时的其中一种情况
哎,到处都是“你小子被贴了”
2005/8/25 1:43 | 流言社
Gravatar
#  re: 数据库超时的其中一种情况
遇到数据库中很多进程被阻塞或死锁的情况怎么解决?(就是在sql2000的企业管理器的“管理”中的“当前活动”“锁/进程ID”中发现的)
2006/3/8 10:45 | zjbmax
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值