数据库死锁时紧急处理

本文探讨了SQL Server中常见的死锁问题,特别是在数据库文件增长过程中导致的问题,并介绍了如何使用sp_who和killspid来解决死锁。还讨论了从SQL Server 2000到2005版本间对于此问题的改进。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLSERVER 数据库死锁的解决方案!

sp_who

 

kill spid

 

SQLSERVER出现死锁的一个常见情况是:

 

SQLSERVER2000创建一个数据库的数据库文件和日志文件的增长规则是按10%增长。假设数据库文件的容量积累到100GB,则下次数据库扩容时是按10%一次性扩大文件空间,也就是一次性要扩大10GB的空间。一次扩容10GB,将使硬盘严重负载,至少需要几秒钟的时机,而此时如果客户端正频繁访问数据库,将无法获得数据库响应,提示文件存储空间不足(此时正在扩容)。此时就是容易产生死锁的情况了,一旦死锁,SQLSERVER2000将进入卡死状态,即使经过几秒后,文件已经扩容,它还是死的。这种情况在SQLERVER2005有了改进,应该是不会死了。

 

其实这是微软的SQLSERVER默认设置值造成的,也就是说你安装SQLSERVER2000后,不修改这个默认值,如果你的系统数据量很大,而且有频繁操作的时间段,那么总有一天你的系统会出现这个死锁的现象,难以避免!幸好在SQLSERVER2005已经修改这个默认设置。

 

SQLSEVER2005也增加了一个内部安全通道,即使数据库进入卡死状态,也可以通过这个安全通道进行kill spid操作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值