Sqlserver 死锁问题

关于数据库死锁,建议先查到出死锁点,根据死锁点再分析问题所在,进而优化或改正问题

 

那么,第一步就是死锁查询:

1、sp_who 或 sp_who2
2、Select * from sysprocesses where blocked <> 0
3:、企业管理器->服务器->管理工具->活动->当前活动 然后把他kill掉。。。 

进程信息中,如果发现旁边有一个锁状的图标,就表明这个进程是死锁,kill掉

4、SQL code 先执行 sp_lock Mode 是 X 代表的是死锁 然后 kill 对应的ID
5、SQL事件探查器,监控一下,看主要是那些处理引起的死锁.然后做相应的处理.
用事件探查器new一个trace,监视一下造成你sqlserver停顿的情况。。。

 

上述方式,只能查看到死锁点。综合上述方式,可以快速定位。

 

那怎么分析死锁产生原因呢?

我的建议:

从死锁点开始,通过sp_who和事件探查器来跟踪相应的调用,来分析所使用sql是否产生死锁因子。

从而优化或改进。

 

如果没有跟踪出问题,建议你做db优化、其次硬件升级;

 

 

最后,归结下,仔细编写并检查自己的代码,避免死锁的发生

转载于:https://www.cnblogs.com/GoGoagg/archive/2010/03/25/1694853.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值