查看历史死锁信息

Kri*_*shn 1 sql-server deadlock sql-server-2014

我的任务是调查应用程序的工作由于死锁而失败的问题。我知道使用跟踪来捕获死锁,但是由于这是 16 小时前发生的事情,我想知道是否可以查看导致死锁的原因?

谢谢

Bre*_*zar 7

sp_BlitzLock开始。这是一个由 Erik Darling 编写的免费开源存储过程,用于检查 SQL Server 2012 及更高版本中的内置系统健康扩展事件会话。

您可以从First Responder Kit Github 存储库下载它。

要安装它,只需运行 sp_BlitzLock.sql 来安装存储过程,然后运行:

EXEC sp_BlitzLock
Run Code Online (Sandbox Code Playgroud)

第一个结果集是一组死锁详细信息,第二个结果集是分析哪些应用程序、用户和表最常涉及死锁。它还为您提供参数,用于 sp_BlitzCache 分析其查询计划,并提供 sp_BlitzIndex 用于分析可能造成影响的表的过度索引和索引不足问题。

  • @Krishn 需要尽快提取信息。system_health 跟踪目标是一个环形缓冲区和翻转文件,其中包含 4 个文件,每个文件最大为 5MB。16 小时前发生的死锁是否可用取决于自死锁发生后捕获的数据大小。 (2认同)
  • 我无法强调所有人的喜悦,Brent Ozar 回答了我的问题,Dan Guzman 发表了评论,Erik Darling 编辑了我的问题。 (2认同)