Флаги трассировки (Transact-SQL)

Изменения: 15 сентября 2007 г.

Флаги трассировки используются для временной установки определенных характеристик сервера или отключения определенного режима. Например: если флаг трассировки 3205 установлен при запуске экземпляра SQL Server 2005, то отключается режим аппаратного сжатия для ленточных накопителей. Флаги трассировки часто используются для диагностики проблем, связанных с производительностью, отладки хранимых процедур или сложных компьютерных систем.

В следующей таблице перечислены и описаны флаги трассировки, доступные в SQL Server 2005.

ms188396.note(ru-ru,SQL.90).gifПримечание.
Поведение флага трассировки может не поддерживаться в следующих версиях SQL Server.
Флаг трассировки Описание

260

Выводит сведения о версиях динамически загружаемых библиотек (DLL) расширенных хранимых процедур. Дополнительные сведения о функции __GetXpVersion() см. в разделе Creating Extended Stored Procedures.

Область: глобальная или сеанс

1204

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

Область: только глобальная

1211

Отключает укрупнение блокировки, основанное на слишком активном использовании памяти или на количестве блокировок. Компонент SQL Server 2005 Database Engine не будет повышать уровень блокировки с блокировки строки или страницы до блокировки таблицы.

При использовании этого флага трассировки может быть создано излишнее количество блокировок. Это может привести к снижению производительности компонента Database Engine или вызвать ошибки 1204 (невозможность выделить блокированный ресурс) из-за недостатка памяти. Дополнительные сведения см. в разделе Укрупнение блокировки (компонент Database Engine).

Если установлены оба флага трассировки 1211 и 1224, то флаг 1211 имеет более высокий приоритет. Однако так как флаг трассировки 1211 препятствует укрупнению во всех случаях, даже при слишком активном использовании памяти, рекомендуется использовать флаг 1224. Это помогает избежать ошибок «нет блокировок» при использовании большого числа блокировок.

Область: глобальная или сеанс

1222

Возвращает ресурсы и типы блокировок, участвующих во взаимоблокировке, а также текущую команду, на которую влияет взаимоблокировка, в формате XML, не соответствующем ни одной XSD-схеме.

Область: только глобальная

1224

Отключает укрупнение блокировок на основе количества блокировок. Однако слишком активное использование памяти может включить укрупнение блокировок. Компонент Database Engine укрупняет блокировки строк или страниц до блокировок таблиц, если объем памяти, используемый блокированными объектами, превышает одно из следующих условий:

  • Сорок процентов памяти, используемой компонентом Database Engine, за исключением выделения памяти, используемой расширением AWE. Применимо только в случае, если параметр locks процедуры sp_configure имеет значение 0.
  • Сорок процентов памяти блокировки, настроенной на использование параметра locks процедуры sp_configure. Дополнительные сведения см. в разделе Установка параметров конфигурации сервера.

Если установлены оба флага трассировки 1211 и 1224, то флаг 1211 имеет более высокий приоритет. Однако так как флаг трассировки 1211 препятствует укрупнению во всех случаях, даже при слишком активном использовании памяти, рекомендуется использовать флаг 1224. Это помогает избежать ошибок «нет блокировок» при использовании большого числа блокировок.

Область: глобальная или сеанс

2528

Отключает параллельную проверку объектов с помощью инструкций DBCC CHECKDB, DBCC CHECKFILEGROUP и DBCC CHECKTABLE. По умолчанию степень параллелизма определяется обработчиком запросов автоматически. Максимальная степень параллелизма настраивается так же, как и параллельные запросы. Дополнительные сведения см. в разделе Параметр max degree of parallelism.

В общем случае параллельное выполнение инструкций DBCC следует оставить включенным. Для инструкции DBCC CHECKDB обработчик запросов повторно оценивает и автоматически корректирует параллелизм в каждой проверяемой таблице или пакете таблиц. Иногда проверка может начаться, если сервер близок к состоянию простоя. Если администратору известно, что нагрузка повысится прежде, чем проверка будет завершена, он может вручную уменьшить или отключить параллелизм.

Однако отмена параллельной проверки может вызвать снижение общей производительности базы данных. При уменьшении степени параллелизма увеличивается объем сканируемого журнала транзакций. Это, в свою очередь, повышает потребность базы данных tempdb в пространстве и приводит к нелинейному увеличению времени, необходимого инструкции DBCC для завершения проверок. Если инструкция DBCC выполняется с включенным свойством TABLOCK, а параллелизм отключен, таблицы могут быть блокированы в течение более длительного времени.

Область: глобальная или сеанс

3205

По умолчанию инструкция DUMP или BACKUP использует аппаратное сжатие для накопителей на магнитной ленте, поддерживающих этот режим. С помощью этого флага трассировки можно отменить аппаратное сжатие для накопителей на магнитной ленте. Это полезно, если нужно обмениваться лентами с другими рабочими местами или накопителями на магнитной ленте.

Область: глобальная или сеанс

3625

Ограничивает объем сведений, возвращаемый в сообщениях об ошибках. Дополнительные сведения см. в разделе Настройка видимости метаданных.

Область: только глобальная

4616

Делает метаданные уровня сервера видимыми ролям приложений. В SQL Server 2005 роль приложения не может получать доступ к метаданным за пределами собственной базы данных, так как роли приложений не связаны с участником уровня сервера. Это поведение было изменено по сравнению с предыдущими версиями SQL Server. Установка этого глобального флага отключает новые ограничения и позволяет ролям приложений получать доступ к метаданным уровня сервера.

Область: только глобальная

7806

Включает применение выделенных административных соединений (DAC) в SQL Server Express. По умолчанию ресурсы DAC не зарезервированы в SQL Server Express. Дополнительные сведения см. в разделе Использование выделенного административного подключения.

Область: только глобальная

Замечания

В SQL Server 2005 существует два типа флагов трассировки: для сеанса и глобальные. Флаги трассировки сеанса действуют во время данного соединения и доступны только для этого соединения. Глобальные флаги трассировки устанавливаются на уровне сервера и доступны для каждого соединения с этим сервером. Некоторые флаги могут быть включены только как глобальные, а некоторые и как глобальные, и как для сеанса.

Применяются следующие правила.

  • Глобальный флаг трассировки должен быть включен глобально. В противном случае, флаг трассировки не повлияет на работу сервера. Рекомендуется включать флаги трассировки при запуске с помощью параметра командной строки -T.
  • Если флаг трассировки может иметь или глобальную область, или область сеанса, он может быть включен с соответствующей областью. Флаг трассировки, включенный на уровне сеанса, никогда не влияет на другой сеанс, и действие флага трассировки прекращается, если SPID, открывший сеанс, выполняет выход.

Флаги трассировки устанавливаются и снимаются с помощью любого из следующих методов:

  • Использование команд DBCC TRACEON и DBCC TRACEOFF.
    Например, DBCC TRACEON 2528: Чтобы включить флаг трассировки глобально, используйте DBCC TRACEON с аргументом -1: DBCC TRACEON 2528, -1. Чтобы отключить глобальный флаг трассировки, используйте DBCC TRACEOFF с аргументом -1.
  • Использование параметра запуска -T для указания необходимости установки флага трассировки при запуске.
    Параметр запуска -T включает флаг трассировки глобально. Невозможно включить флаг трассировки уровня сеанса с помощью параметра запуска. Дополнительные сведения о параметрах запуска см. в разделе Использование параметров запуска службы SQL Server.

Использование команды DBCC TRACESTATUS для определения активных в данный момент флагов трассировки.

Изменения поведения

В SQL Server 2000 достаточно простой инструкции DBCC TRACEON (1204), чтобы включить запись взаимоблокировок в журнал ошибок. В SQL Server 2005 необходимо включить флаг глобально, так как флаг уровня сеанса невидим потоку монитора взаимоблокировок.

Дополнительные сведения об изменениях поведения см. в разделе Критические изменения в функциях компонента SQL Server 2005 Database Engine.

Примеры

В следующем примере флаг трассировки 3205 устанавливается с помощью команды DBCC TRACEON.

DBCC TRACEON (3205,-1)

См. также

Справочник

Типы данных (Transact-SQL)
DBCC INPUTBUFFER (Transact-SQL)
DBCC OUTPUTBUFFER (Transact-SQL)
DBCC TRACEOFF (Transact-SQL)
DBCC TRACEON (Transact-SQL)
DBCC TRACESTATUS (Transact-SQL)
EXECUTE (Transact-SQL)
SELECT (Transact-SQL)
SET NOCOUNT (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

15 сентября 2007 г.

Изменения
  • Испавлены сведения об области действия флага трассировки 1224.

14 апреля 2006 г.

Добавления
  • Добавлено описание флага трассировки 7806.
  • Добавлены сведения о преимуществе флага трассировки 1224 над 1211.
  • Добавлены сведения об области для каждого флага трассировки.
  • Добавлены сведения об изменениях поведения.

5 декабря 2005 г.

Добавления
  • Добавлено описание флагов трассировки 4616 и 3625.