设置deadlock_priority不会使LOW优先级会话成为受害者

时间:2018-02-01 13:49:20

标签: sql sql-server locking deadlock

我们的一个工作是用户例程死锁,所以我们在调用过程之前将以下代码放在作业步骤中:

sWidth, sHeight

但是,该过程仍在处理的堆栈中。 死锁优先级是否不会通过子程序链继承? 我可以确认死锁受害者会话在任何时候都没有设置其deadlock_priority。

下面是完整的死锁XML,其中包含一些隐私删除:

DECLARE @deadlock_var NCHAR(3);  
SET @deadlock_var = N'LOW';  
SET DEADLOCK_PRIORITY @deadlock_var;
*--Call procedure
exec Client_myDeliveries_I_S*

其他 版: Microsoft SQL Server 2012(SP3-CU2)(KB3137746) - 11.0.6523.0(X64)     2016年3月2日21:29:16     版权所有(c)Microsoft Corporation     Windows NT 6.3(Build 9600:)(管理程序)

上的标准版(64位)

1 个答案:

答案 0 :(得分:1)

从每个人的输入来看,似乎SQL Server可以在微软尚未明确的情况下忽略死锁优先级(我们知道);用于确定受害者的算法未被理解或记录。如果有人能找到有关此主题的可靠信息,请分享。