Флаги трассивоки в умелых руках не раз вам помогут. Основные сведения по флагам трассировки вы сможете прочитать на msdb. В этой статье я изложу краткое содержание и свои мысли.
Флаги трассировки используются для временной установки определенных характеристик сервера или отключения определенного режима. Например, если флаг трассировки 3205 установлен при запуске экземпляра SQL Server, то отключается режим аппаратного сжатия для ленточных накопителей. Флаги трассировки часто используются для диагностики проблем, связанных с производительностью, отладки хранимых процедур или сложных компьютерных систем.
В SQL Server существуют два типа флагов трассировки: для сеанса и глобальные. Флаги трассировки сеанса действуют во время данного соединения и доступны только для этого соединения. Глобальные флаги трассировки устанавливаются на уровне сервера и доступны для каждого соединения с этим сервером. Некоторые флаги могут быть включены только как глобальные, а некоторые и как глобальные, и как для сеанса.
Применяются следующие правила:
- Глобальный флаг трассировки должен быть включен глобально. В противном случае, флаг трассировки не повлияет на работу сервера. Рекомендуется включать глобальные флаги трассировки при запуске с помощью параметра командной строки -T.
- Если флаг трассировки может иметь или глобальную область, или область сеанса, он может быть включен с соответствующей областью. Флаг трассировки, включенный на уровне сеанса, никогда не влияет на другой сеанс, и действие флага трассировки прекращается, если SPID, открывший сеанс, выполняет выход.
Флаги трассировки устанавливаются и снимаются с помощью любого из следующих методов:
- Использование команд DBCC TRACEON и DBCC TRACEOFF.Например, DBCC TRACEON 2528: Чтобы включить флаг трассировки глобально, используйте DBCC TRACEON с аргументом -1: DBCC TRACEON (2528, -1). Чтобы отключить глобальный флаг трассировки, используйте команду DBCC TRACEOFF с аргументом -1.
- Использование параметра запуска -T для задания установки флага трассировки при запуске.Параметр запуска -T включает флаг трассировки глобально. Невозможно включить флаг трассировки уровня сеанса с помощью параметра запуска. Дополнительные сведения о параметрах запуска см. в разделе
Использование команды DBCC TRACESTATUS для определения активных в данный момент флагов трассировки.
Перечень флагов вы сможете посмотреть на msdb.
Наиболее часто используемые флаги:
1204 — Логирование в ERRORLOG deadlock
1222 — Подробности deadlock
3502 — Логирование в ERRORLOG операции checkpoint
2371 — Очень интересный флаг. Он позволяет изменить логику автоматического обновления статистики, что позволит обновлять статистику не при изменении 20% данных, а в зависимости от объёма изменений. Данный флаг слабо документирован.
3226 -По умолчанию каждая успешная операция резервного копирования добавляет запись в журнал ошибок служб SQL Server и в журнал системных событий. При частом выполнении резервного копирования журнала такие сообщения об успешном выполнении быстро накапливаются, в результате чего создаются огромные журналы ошибок, в которых трудно найти другие сообщения. С помощью этого флага трассировки можно подавить такие записи журнала. Это может быть полезным при частом выполнении резервного копирования журнала и в случае, если ни один из используемых сценариев не зависит от этих записей.