SQL SERVER数据库使用过程中系统提示死锁处理办法

马上双节(国庆节、中秋节)了,这篇文章是双节前的最后一篇,祈祷过节期间,数据库稳定运行,服务器正常发挥。祝大家假期愉快!!!!

任何的数据库都会出现死锁的情况,特别是一些大型的复杂业务,数据库架构的设计错综复杂,导致很多数据表的关联可能不太严谨。

业务系统出现死锁造成业务短暂无法使用的情况类似于系统宕机,处理死锁业务机会稍纵即逝,因为要查出当时死锁的是哪一段脚本运行造成的。

“有幸”遇到几次业务直接死锁,造成所有业务瘫痪的经历,真是惊心动魄。

话不多说,贴脚本如下:

以下就是代码,谨记遇到死锁一定要快速查,不然找不到死锁原因的,死锁是“可遇不可求”,找到死锁后不要着急“杀死”,要淡定的执行输出脚本,最后查看语句的表结构及语法问题。

 1 ---阻塞进程信息
 2 use master
 3 
 4 select spid 阻塞进程编号 ,login_time 登入时间,status 当前状态,hostname 主机名称,
 5 program_name 使用程序名称,nt_domain 网络域,nt_username 网络用户名称,net_address 网卡唯一地址,
 6 open_tran 打开事务数
 7 from sysprocesses where  spid in (select blocked from sysprocesses) and blocked=0
 8 
 9 --被阻塞进程信息
10 use master
11 
12 select spid 被阻塞进程编号,blocked 阻塞进程号 ,login_time 登入时间,status 当前状态,hostname 主机名称,
13 program_name 使用程序名称,nt_domain 网络域,nt_username 网络用户名称,net_address 网卡唯一地址,
14 open_tran 打开事务数
15 from sysprocesses where   blocked<>0 
16 
17 KILL 571
18 KILL 659
19 KILL 783
20 
21 --输出死锁的执行的语句:
22 dbcc inputbuffer(745)  --745代表进程编号
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值