我有一个非常重要的计划存储过程,昨天运行中途被选为死锁受害者。我是僵局受害者概念的新手,并且找到了一些描述死锁受害者工作方式的站点。关于堆栈溢出,有一些问题可以解决,但是我看不到任何详细的风险,如果有的话。
我想确保再也不会发生这种情况,并且该过程具有运行其他任何东西的优先级。
我在这里https://docs.microsoft.com/en-us/sql/t-sql/statements/set-deadlock-priority-transact-sql?view=sql-server-ver15已读到,可以在存储过程中通过在其开头声明SET DEADLOCK_PRIORITY HIGH
来进行设置。
如以上网站所述:
LOW映射为-5,NORMAL映射为0,HIGH映射为5
这意味着它将比其他小于5的进程具有更高的优先级。我们在其他任何地方都没有声明此进程,并且没有将其他过程设置为任何数值。
因此,如果我将过程设置为HIGH
,这是否是一件相当安全的事情,即不会导致服务器内部功能停止运行等?