Есть ли способ идентифицировать процессы, которые блокировались или были заблокированы другим процессом постфактум, не настраивая что-либо заранее?
Моя еженедельная работа по обслуживанию (восстановление индексов, обновление статистики) длилась очень долго. Я думаю, что он пытался над чем-то работать и столкнулся с блокировкой, чтобы это не продолжалось, но я не знаю, что это может быть.
Спасибо!
Я проверил обзор DMV SQL 2005, и все, кажется, указывает на то, что системные представления и функции собирают информацию о транзакциях только в реальном времени. к трассировке по умолчанию можно получить доступ с помощью fn_trace_gettable, вы можете найти там некоторые подробности.
лучший способ получить эту информацию, как вы предложили, - заблаговременно. на самом деле у нас есть сторонний инструмент именно для этой цели; для сбора информации о запросах, которую мы можем затем использовать для расследования проблем с производительностью постфактум.
Нет, вам нужно будет настроить вход в таблицу, чтобы вы могли запрашивать ее после факта.