Рейтинг:
Автор: GreenSunrise
Прислал: GreenSunrise
Для этого нужно выполнить три действия. Первое: настроить SQL Server так, чтобы он писал в лог граф дедлока. Второе - воспроизвести дедлок. Третье - открыть файл лога и найти там граф. Ниже более подробное описание, как и что настраивать, и того, где находится файл лога.
Настройки SQL Server:
Вариант 1. Не требует рестарта SQL Server, но и действует лишь до его рестарта.
Если вы используете SQL Server 2005, то запустите Management Studio. Если вы используете SQL Server 2000, то запустите Query Analyzer.
Выполните следующий код:
dbcc traceon (1204) -- выводит информацию о взаимоблокировке
dbcc traceon (3605) -- записывает информацию в файл ERRORLOG
dbcc traceon (1222) -- выводит расширенную информацию о взаимоблокировке (только для 2005)
Вариант 2. Требует рестарта сервера, но действует и при последующих его запусках.
Если вы используете SQL Server 2005, то запустите SQL Server Configuration Manager (не путать с SQL Server Management Studio!), в левой панели выберите пункт SQL Server 2005 Services, в правой панели выберите службу "SQL Server (MSSQLSERVER)" (название для дефолтного экземпляра. для именованного будет называться "SQL Server (INSTANCENAME)"). В контекстном меню выберите Properties, перейдите на закладку Advanced и найдите строчку "Startup parameters". Добавьте в конец строки через ";" следующие флаги: "-T3605;-T1204;-T1222".
Если вы используете SQL Server 2000, то запустите Enterprise Manager, в контекстном меню сервера выберите Properties. На закладке General нажмите кнопку "Startup Parameters..." и добавьте туда следующие два параметра: -T3605 и -T1204.
Перезапустите службу SQL Server, чтобы параметры вступили в действие.
Где найти граф дедлока.
Флаг 3605 выводит информацию в файл ERRORLOG.
Для установки по умолчанию SQL Server 2005 (и дефолтного, и именованного инстансов) этот файл будет находиться здесь:
C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG
Для установки по умолчанию дефолтного инстанса SQL Server 2000 этот файл будет находиться здесь:
C:\Program Files\Microsoft SQL Server\MSSQL\LOG\ERRORLOG
Для установки по умолчанию именованного инстанса SQL Server 2000 этот файл будет находиться здесь:
C:\Program Files\Microsoft SQL Server\MSSQL$INSTANCENAME\LOG\ERRORLOG
Комментарии
а почему про -T3605 в хелпах sql2k ничего нет?