Как найти тайм-ауты в профиле SQL 2005 - PullRequest
7 голосов
/ 10 ноября 2008

Я пытаюсь найти операторы SQL, для которых истекло время ожидания с использованием профилировщика SQL 2005. Есть ли способ установить такой фильтр?

Ответы [ 3 ]

7 голосов
/ 10 ноября 2008

В Profiler вы можете добавить событие «Внимание» в разделе «Ошибки и предупреждения». Это определение

Собирает все события внимания, такие как запрос клиентского прерывания или когда соединение с клиентом разорвано.

Что касается других ошибок (взаимоблокировки, ограничения и т. Д.), Попробуйте «Предупреждение выполнения» (сообщает о предупреждении, которое произошло во время выполнения оператора или процедуры SQL) или «Сообщение об ошибке пользователя» (сообщение об ошибке, отображаемое пользователю случай ошибки или исключения).

1 голос
/ 11 ноября 2008

Да.

  • Отметьте «Все события»
  • Перейти в раздел блокировки
  • Укажите события «lock: Timeout»

Событие блокировки в Books Online

Теперь это работает с блокировками на стороне сервера (@@ LOCK_TIMEOUT <> 0). Я не знаю, будет ли задержан тайм-аут на стороне клиента.

0 голосов
/ 11 ноября 2008

Один вариант: если вы знаете, на что настроены тайм-ауты, настроенные вашим клиентом (т. Е. 30 секунд по умолчанию), вы можете установить фильтр на трассировке, чтобы собирать только события, продолжительность которых больше или равна вашему тайм-ауту (минус второй или два).

...