SQL Server 2000 - отладка тупиков - PullRequest
       21

SQL Server 2000 - отладка тупиков

3 голосов
/ 09 сентября 2008

Я ищу предложения по устранению и устранению проблем взаимоблокировки в базе данных SQL Server 2000. Мне было рекомендовано использовать флаги трассировки 1024 и 3605, которые, как я обнаружил, дают мне следующее:

1024 - этот флаг трассировки возвращает тип блокировок, участвующих в тупике, и текущую затронутую команду.

3605 - этот флаг трассировки отправляет вывод трассировки в журнал ошибок.

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

Какие-нибудь другие предложения или истории о счастливом конце войны о преследовании этой общей проблемы?

Ответы [ 3 ]

3 голосов
/ 09 сентября 2008

Вот библия по устранению тупиковой ситуации: http://blogs.msdn.com/bartd/archive/2006/09/09/Deadlock-Troubleshooting_2C00_-Part-1.aspx

3 голосов
/ 17 сентября 2008

Очень полезный скрипт для анализа тупиков: http://www.sommarskog.se/sqlutil/aba_lockinfo.html

2 голосов
/ 09 сентября 2008

Как только вы узнаете, какие SQL-операторы задействованы, анализ кода наверняка поможет. Некоторые правила большого пальца проверяют порядок доступа к строкам и проверяют уровень изоляции, используемый для операторов SQL. Трассировка профилировщика может очень помочь.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...