SQL Server 2014: как долго хранимые процедуры ждали блокировки

Использование SQL Server 2014: у меня есть две важные хранимые процедуры в моей системе, и я беспокоюсь о том, как долго хранимые процедуры ждут блокировок.

Я думаю, чтобы найти способ определить, сколько времени ожидания блокировки в конце хранимой процедуры, и если оно больше определенного порога, создайте запись журнала приложения и запишите ее.

Есть ли какой-либо практический способ (например, один из @@SystemVariables ) определить время ожидания блокировки до сих пор в хранимой процедуре, не налагая дополнительные служебные данные в системные таблицы?

Я рекомендую вам включить blocked process threshold событие blocked process threshold . При включении он инициирует событие типа Blocked Process Report, если процесс блокирует другой процесс дольше, чем установленный порог. Это даже лучше, чем вы спрашиваете:

  • он не только срабатывает при длительных ожиданиях, но и показывает, кто вызывает длительные ожидания
  • как событие, это может вызвать действие (например, отправить электронное письмо). См. Раздел « Уведомление о событиях», чтобы понять, как использовать это событие.
  • он не требует изменений кода в ваших процедурах.
Interesting Posts

CROSS JOIN в SQL Server, чтобы найти расстояние

Ошибка импорта SQL Azure V12 BACPAC. «Не удалось прочитать информацию заголовка модели схемы из пакета. Версия модели« 3.5 »не поддерживается

Имеет ли SQL Django «get_FOO_display ()» как аналог?

Как создать сложное много-много отношений в корневой структуре 4-го кода

Запросить глобальную таблицу temp на связанном сервере

Столбец SQL Server из другой таблицы со статическим значением в представлении

Подход – оптимизация LINQ для производительности

Создание атомной базы данных и работы файловой системы

Как вставить данные в пакет?

Я не получаю значения, передавая переменную, используя запрос IN в SQL

Тип данных столбца DATETIME SQL Server 2008 по умолчанию не задан текущей датой с помощью getdate ()

Как я могу определить в SQL Server, если диапазон dateTime перекрывает другой

задание CASE, поэтому все результаты Varchar

выберите TOP N строк из таблицы

Будет ли этот запрос загружать всю таблицу в память

Давайте будем гением компьютера.