SQLServer 2005死锁终极大法(自动杀)

项目背景:

一个重要的项目,一个复杂的背景,每天大量人员频繁的操作,在过去的几个月内偶尔发生一两次死锁导致系统不能使用

为缓解查询压力,实现了读写分离,已经增加了3台查询数据库与主数据库同步

死锁解决办法:

 

1.首先创建表:

CREATE TABLE [dbo].[DeadLock](
 [ID] [int],
 [标志] [varchar](10),
 [进程ID] [smallint],
 [线程ID] [smallint],
 [块进程ID] [smallint],
 [数据库ID] [smallint],
 [数据库名] [varchar](50),
 [用户ID] [varchar](128),
 [用户名] [varchar](100),
 [累计CPU时间] [int],
 [登陆时间] [datetime],
 [打开事务数] [varchar](30),
 [进程状态] [varchar](128),
 [工作站名] [varchar](128),
 [应用程序名] [varchar](120),
 [工作站进程ID] [varchar](228),
 [域名  ] [nchar](12),
 [网卡地址] [varchar](120),
 [进程的sql语句] [varchar](3000),
 [发生时间] [datetime]
)

这个表是根据下面的存储过程结果创建的,不要问我创建过程,反正我调了好几次才成功

 

2.创建下面的存储过程:

create proc p_lockinfo
@kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示
@show_spid_if_nolock bit=0 --如果没有死锁的进程,是否显示正常

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值