在不同的站点和 QnA 中搜索后,我对如何做感到很困惑:
- 查找死锁及其发生时间
- 如何确定发生了什么以及出现了死锁。
- 导致死锁的查询是什么。
是否有任何查询来提取此类信息?
请注意,我已经看到了表格
sys.dm_tran_locks
sys.dm_exec_requests
我还是不明白。
在不同的站点和 QnA 中搜索后,我对如何做感到很困惑:
是否有任何查询来提取此类信息?
请注意,我已经看到了表格
sys.dm_tran_locks
sys.dm_exec_requests
我还是不明白。
找到已发生的死锁的一个好方法是使用 Brent Ozar 的 First Responder Kit。
这可以在这里找到: https: //www.brentozar.com/first-aid/
安装后,您可以运行
sp_blitzlock
命令并查看死锁信息。https://www.brentozar.com/archive/2017/12/introducing-sp_blitzlock-troubleshooting-sql-server-deadlocks/
另一种选择是查看 Martin 建议的环形缓冲区: https: //www.sqlshack.com/monitoring-sql-server-deadlocks-using-the-system_health-extended-event/# :~:text=system_health%20event %20session.-,Extract%20SQL%20Server%20Deadlock%20information%20using%20T%2DSQL%20from%20the%20ring%20buffer%20target,-We%20can%20use