SQL Server - Как зарегистрировать процесс блокировки потенциальных клиентов? - PullRequest
0 голосов
/ 11 апреля 2019

У нас огромное приложение, и мы обращаемся к нашему серверу sql с нескольких сторон. Наши пользователи жалуются на проблемы с производительностью, но мы полагаем, что это не медленно. Вместо этого мы думаем, что у нас есть блокировки, из-за которых пользователи чувствуют медленную работу.

Итак, мы хотим регистрировать процессы, которые блокируют другие процессы более чем на 5 секунд. В конце записи мы хотели бы подсчитать, как часто процесс блокировал другой процесс.

Мы уже попробовали следующее:

  1. мы попытались найти sqls, который показывает тот же результат, что и монитор активности (без успеха)
  2. Мы создали файл трассировки и проанализировали этот скрипт: https://michaeljswart.com/2011/04/a-new-way-to-examine-blocked-process-reports/
  3. Мы включили порог заблокированного процесса (5 секунд), но я не получил никакой информации о процессе блокировки (дескриптор sql или что-то в этом роде). Я заблокировал процесс по расширенному событию
  4. Мы наблюдали за монитором активности, но, кажется, действительно сложно собрать полезные данные о причине коротких блоков, и мы не можем подсчитать, как часто определенный процесс блокирует

Мы ищем метод регистрации, который имеет следующую информацию:

  • заблокированный SQL
  • Блокировка SQL (хранимая процедура или текущий оператор в процедуре)
  • Длительность блокировки
  • Время
  • База данных

Мы полагаем, что SQL Server Profiler не является причиной снижения производительности.

...