我发现了一些关于死锁的超时错误,特别是:
Transaction (Process ID 161) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
这是间歇性的,虽然我知道造成这个问题的原因,但在我花费太多时间和精力之前,我想进行调查和验证。
有没有办法查看围绕这些类型的错误的日志,以查看事务正在运行的查询,和/或当时锁定了哪些表?
由于它是间歇性的,我很难在行动中发现问题。
答案 0 :(得分:0)
死锁总是间歇性的,不可预测的。
默认情况下,SQL Server不会保留有关死锁的任何历史信息,这有助于调查其原因。如果您想收集此信息,则必须事先做好准备。
您基本上有两个选项:在错误日志中设置跟踪标志1222和examinig信息,或者启动捕获死锁图事件的探查器会话。两者都将提供有关死锁查询及其死锁资源的信息。