SQL Server死锁跟踪常用方法

一、开启 1204或1222事件trace

每次数据库重启后需要重新开启使用trace log跟踪,执行如下sql开启1222和1204 flag,死锁信息会在sql server 日志中输出  
DBCC TRACEON(1204,-1)
DBCC TRACEON(1222,-1)

二、 开启事件探查器跟踪sql profiler

SQLServer Profiler其实是trace的图形界面版,配置好Profiler后可以导出trace的创建脚本,方便批量配置。
保存文件一定要准确保存,很重要,后续研发排查需要使用此跟踪文件进行排查
在【事件选择】页中,展开Locks事件,并选择以下事件:
  • Deadlock graph
  • Lock:Deadlock
  • Lock:Deadlock Chain
打开TSQL事件,并选择以下事件:
  • SQL:StmtCompleted
  • SQL:StmtStarting
点击【列筛选器】,在跟踪属性中,选择数据库名为需要侦测的数据库,这里使用 kims
点击运行即开始收集。
当死锁发生时,可以看到如下信息
点击【Deadlock graph】时,会显示死锁的图像
可以保存死锁图像,右键然后选择导出事件数据,并另存为xml文件
下面是其XML格式
  
0 0