Хранимая процедура sp_trace_create (Transact-SQL)

Применимо к:SQL Server

Создает определение трассировки. Новая трассировка находится в остановленном состоянии.

Внимание

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_trace_create
    [ @traceid = ] traceid OUTPUT
    , [ @options = ] options
    , [ @tracefile = ] N'tracefile'
    [ , [ @maxfilesize = ] maxfilesize ]
    [ , [ @stoptime = ] 'stoptime' ]
    [ , [ @filecount = ] filecount ]
[ ; ]

Аргументы

[ @traceid = ] traceid OUTPUT

Номер, назначенный SQL Server новой трассировки. Любые предоставленные пользователем входные данные игнорируются. @traceid — это параметр OUTPUT типа int с значением по умолчаниюNULL. Пользователь использует значение @traceid для идентификации, изменения и контроля трассировки, определенной этой хранимой процедурой.

[ @options = ] параметры

Указывает набор параметров для трассировки. @options является int, без значения по умолчанию. Пользователи могут выбирать сочетания этих параметров путем указания их суммарного значения. Например, чтобы включить TRACE_FILE_ROLLOVER параметры и SHUTDOWN_ON_ERRORуказать 6 для @options.

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

Имя параметра Значение параметра Description
TRACE_FILE_ROLLOVER 2 Указывает, что при достижении @filecount текущий файл трассировки закрывается и создается новый файл. Все новые записи записываются в новый файл. Новый файл имеет то же имя, что и предыдущий файл, но целое число добавляется для указания его последовательности. Например, если исходный файл трассировки называется filename.trc, следующий файл трассировки называется filename_1.trc, следующий файл трассировки — filename_2.trcи т. д.

По мере увеличения количества трассировочных файлов число, добавляемое в конец имени файла, будет также последовательно увеличиваться.

SQL Server использует значение по умолчанию @filecount (5 МБ), если этот параметр указан без указания значения для @filecount.
SHUTDOWN_ON_ERROR 4 Указывает, что если трассировка не может быть записана в файл по какой-либо причине, SQL Server завершает работу. Этот параметр полезен в случае проведения трассировок по проверке безопасности.
TRACE_PRODUCE_BLACKBOX 8 Указывает, что запись последних 5 МБ данных трассировки, созданных сервером, сохраняется сервером. TRACE_PRODUCE_BLACKBOX несовместим со всеми другими параметрами.

[ @tracefile = ] N'tracefile'

Указывает расположение и имя файла, в которое записывается трассировка. @tracefile — nvarchar(245) без значения по умолчанию. @tracefile может быть локальным каталогом (напримерN'C:\MSSQL\Trace\trace.trc', UNC) или UNC для общей папки или пути (напримерN'\\<servername>\<sharename>\<directory>\trace.trc').

SQL Server добавляет .trc расширение ко всем именам файлов трассировки. TRACE_FILE_ROLLOVER Если указан параметр и @filecount, SQL Server создает новый файл трассировки, когда исходный файл трассировки увеличивается до максимального размера. Новый файл имеет то же имя, что и исходный файл, но _n добавляется для указания его последовательности, начиная с 1. Например, если первый файл трассировки называется filename.trc, второй файл трассировки называется filename_1.trc.

Если вы используете TRACE_FILE_ROLLOVER этот параметр, рекомендуется не использовать символы подчеркивания в исходном имени файла трассировки. Если используются символы подчеркивания, выполняются следующие действия.

  • SQL Server Profiler не загружается автоматически или запрашивает загрузку файлов отката (если настроен любой из этих параметров переключения файлов).

  • Функция sys.fn_trace_gettable не загружает файлы отката (при указании с помощью аргумента @number_files), где исходное имя файла заканчивается символом подчеркивания и числовым значением. (Это не относится к подчеркиваниям и числу, которые автоматически добавляются при перекате файла.)

Примечание.

В качестве временного решения в обоих случаях можно переименовать файлы трассировки, исключив подчеркивания из имени исходного файла. Например, если исходный файл называется, а файл отката называетсяmy_trace.trcmy_trace_1.trc, можно переименовать файлы mytrace.trc в файлы и mytrace_1.trc перед открытием файлов в SQL Server Profiler.

@tracefile нельзя указать при TRACE_PRODUCE_BLACKBOX использовании параметра.

[ @maxfilesize = ] maxfilesize

Указывает максимальный размер файла трассировки в мегабайтах (МБ). @maxfilesize имеет значение bigint с значением 5по умолчанию.

Если этот параметр указан без TRACE_FILE_ROLLOVER параметра, трассировка останавливает запись в файл, когда используемое дисковое пространство превышает объем, указанный @maxfilesize.

[ @stoptime = ] 'stoptime'

Задает дату и время остановки трассировки. @stoptime — datetime с значением по умолчаниюNULL. Если NULLтрассировка выполняется, пока она не будет остановлена вручную или пока сервер не завершит работу.

Если заданы оба @stoptime и @maxfilesize и TRACE_FILE_ROLLOVER не указаны, трассировка начинается при достижении указанного времени остановки или максимального размера файла. Если @stoptime, @maxfilesize и TRACE_FILE_ROLLOVER указаны, трассировка останавливается в указанное время остановки, если трассировка не заполняет диск.

[ @filecount = ] 'filecount'

Указывает максимальное количество файлов трассировки, образованных с одним базовым именем. @filecount больше, чем 1. Этот параметр действителен только в том случае, если TRACE_FILE_ROLLOVER указан параметр. При указании @filecount SQL Server пытается сохранить не более @filecount файлов трассировки, удалив старый файл трассировки перед открытием нового файла трассировки. SQL Server отслеживает возраст файлов трассировки путем добавления числа в имя базового файла.

Например, если параметр @tracefile указан как C:\mytraceфайл с именем старше файла с именем C:\mytrace_123.trcC:\mytrace_124.trc. Если задано 2значение @filecount, SQL Server удаляет файл C:\mytrace_123.trc перед созданием файла C:\mytrace_125.trcтрассировки.

SQL Server пытается удалить каждый файл один раз и не может удалить файл, используемый другим процессом. Таким образом, если во время выполнения трассировки работает другое приложение, SQL Server может оставить эти файлы трассировки в файловой системе.

Значения кода возврата

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

Код возврата Description
0 Нет ошибки.
1 Неизвестную погрешность.
10 Недопустимые параметры. Возвращается, если указанные параметры несовместимы.
12 Файл не создан.
13 Нехватка памяти. Возвращается, когда недостаточно памяти для выполнения указанного действия.
14 Недопустимое время останова. Возвращается, если указанное время останова уже прошло.
15 Недопустимые аргументы. Возвращается, если пользователь ввел несовместимые аргументы.

Замечания

sp_trace_create — это хранимая процедура SQL Server, которая выполняет многие действия, ранее выполняемые расширенными xp_trace_* хранимыми процедурами, доступными в более ранних версиях SQL Server. Используйте sp_trace_create вместо:

  • xp_trace_addnewqueue
  • xp_trace_setqueuecreateinfo
  • xp_trace_setqueuedestination

sp_trace_create создает только определение трассировки. Эту хранимую процедуру нельзя использовать для запуска или изменения трассировки.

Параметры всех хранимых процедур трассировки SQL (sp_trace_*) строго типизированны. Если эти параметры не вызываются с правильными типами данных входных параметров, как указано в описании аргумента, хранимая процедура возвращает ошибку.

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

Примечание.

Вы можете автоматически загрузить файл трассировки, созданный в sp_trace_create таблицу, с помощью системной fn_trace_gettable функции. Дополнительные сведения см. в sys.fn_trace_gettable.

Пример использования хранимых процедур трассировки см. в разделе "Создание трассировки" (Transact-SQL).

TRACE_PRODUCE_BLACKBOX имеет следующие характеристики:

  • Это трассировка отката. Значение по умолчанию @filecount равно 2, но может быть переопределено пользователем с помощью параметра @filecount .

  • Значение по умолчанию @maxfilesize, как и в других трассировках, равно 5 МБ и может быть изменено.

  • Не удалось задать имя файла. Файл сохраняется следующим образом N'%SQLDIR%\MSSQL\DATA\blackbox.trc':

  • В трассировке будут содержаться только следующие события и их столбцы.

    • Запуск RPC
    • Запуск пакетной службы
    • Исключение
    • Внимание
  • События или столбцы не могут быть добавлены или удалены из этой трассировки.

  • Фильтры не могут быть указаны для этой трассировки.

Разрешения

Требуется разрешение ALTER TRACE.