У меня есть очень важная запланированная хранимая процедура, которая в середине вчерашнего дня была выбрана жертвой тупика. Я новичок в концепции жертв тупиков, и нашел несколько сайтов, описывающих, как они работают. Что касается переполнения стека, то есть вопросы, связанные с этой проблемой, но я не вижу никакой детализации рисков, если они вообще есть.
Я хочу убедиться, что это никогда не повторится, и процедура приоритет отдан чему-то еще.
Я прочитал здесь 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. Мы не указали это где-либо еще, и никакие другие процедуры не были установлены на любое число c.
Так что, если я установлю свою процедуру на HIGH
, это достаточно безопасная вещь, то есть она не приведет к остановке внутренних функций сервера и т. Д. c.?