死锁是一个严重的问题吗?

Bua*_*aXD 8 sql-server deadlock

我有几个生产 SQL Server 实例,每天收到大约 100 封死锁警报电子邮件(一台服务器最多 100 封,总共 150 封)。

这是我应该调查的问题吗?有多少死锁是有问题的,忽略这个问题可能会产生什么后果?

Tho*_*ger 18

通常不会导致严重问题的死锁计数,但调查的原因是找出哪些工作负载彼此发生死锁。毕竟,在僵局中有一个受害者。所以现在您的流程没有完成它打算完成的工作。而且,在好的理论应用程序中应该有某种重试逻辑来处理这样的情况……但在实践中这几乎从未发生过。

话虽如此,调查什么是死锁。通常,产生大多数死锁的是相同的工作负载或相同类型的工作负载。一些快速修复(在阅读死锁 XML 之后)可能很容易摆脱其中的大部分。

(是的,每天 100 多个死锁很多。但任何重复出现的死锁模式,无论是 1 还是 100,都应该进行调查)


Jam*_*s Z 3

从性能的角度来看,死锁是一项相当繁重的操作,因为它需要一些时间来确定是否存在死锁,选择要杀死哪个死锁,回滚它所做的所有更改 - 然后很可能尝试执行该操作再次。此外,最终用户可能会感到沮丧,特别是如果他们收到他们不理解的错误消息或必须再次执行某些操作,但这当然取决于您正在处理的内容。

至少我个人会担心如果每天有超过 100 个死锁,并尝试在问题变得更糟之前解决问题,但就像所有事情一样,这当然取决于情况。