среда, 28 июня 2017 г.

Шпаргалка по deadlock в MSSQL

Источник

Включить трассировку
-1 = сбор информации изо всех сессий.
Проверить трассировку
или
логи о дедлоках будут писаться в errorlog сервера
Рекомендации:
1.Перед включением трассировки настроить сохранение логов сервера, скажем, не 6, а 24 и более. Это делается в EM, Management / SQL Server logs / Right mouse click / Configure / [X] Limit… Maximem number of поставить, скажем, в 30.
2.Настроить на планировщике ежедневный вызов sp_cycle_errorlog — эта процедура вызывает сброс текущего лога.
После того, как будут пойманы 1 — 2 — 3 дедлока выключить трассировку:
Вот краткий перечень флагов, которые могут пригодиться при отлове взаимоблокировок:
  • 1204 – сбор расширенной информации о взаимоблокировке.
  • 3605 – выдача информации в EventLog.
  • 3406 – выдача информации в файл errorlog.
  • 1206 – сбор информации не только о блокировках, участвующих во тупиковой ситуации (что делает флаг 1204), но и об остальных блокировках, наложенных заблокированными транзакциями.
  • 1200 – сбор информации о порядке наложения блокировок (недокументированный).
Сейчас нас интересует флаг под номером 1204 – выдача расширенной информации о взаимоблокировке, получить же информацию при выставленном флаге можно двумя способами.
1. Запустить SQL Profiler, специальную программу для отслеживания работы сервера, и настроить в ней перехват ошибок (event class Errors and Warnings: Exception and Error Log), а затем выставить флаг трассировки 3605. В этом случае вся дополнительная информация о работе SQL-сервера будет сбрасываться в Event Log и перехватываться профайлером, где ее в последствии можно будет посмотреть.
2. Выставить флаг отладки 3406. В этом случае вся дополнительная информация будет сбрасываться в файл errorlog, который по умолчанию находится в каталоге LOG директории SQL сервера.
PAG: 7:1:845557
DBCC PAGE ({dbid | dbname}, filenum, pagenum[, printopt]) в результатах вывода которой можно увидеть object_id (а по нему уже и мя объекта получить)
Полезные ссылки
http://www.sql.ru/articles/mssql/2007/011005DeadlockTroubleshootingPart1.shtml
http://rsdn.ru/article/db/deadlocks.xml

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.