【发布时间】:2017-08-16 19:51:42
【问题描述】:
【问题讨论】:
-
我们能看到 procs 吗?
-
没有办法让我们用给出的信息 100% 回答这个问题,但我猜该图不包括链接表,并且这些表导致了死锁。另一个可能的原因是 SP2 正在更新多行并进行一次更新,但在等待下一次更新时没有释放表锁。
-
@AaronDietz - 更新,我添加了第二张照片。
-
@Hogan - 请看第二张照片。不,SP2 每次调用只更新一个锦标赛。
-
@Claudio -- 所以你有一个游览表和一个游览状态表。您是否在两个 SP 中都引用了这两个表?您是否以相同的顺序引用它们?在同一个TRANS?桌子上有触发器吗?触发器是否以相同的顺序触发。这些图表的问题是它们太简单了。我们需要查看死锁中的所有代码和/或日志信息,以了解发生这种情况的原因。此外,它可能只是一个缓慢的服务器。通常 SQL Server 会将一些缓慢的查询标记为死锁,因为它们只是缓慢未锁定。
WITH #NOLOCK尽你所能,可能会有所帮助
标签: tsql stored-procedures deadlock sql-server-2016