Хранимая процедура 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.trc
my_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.trc
C:\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.
Пример использования хранимых процедур трассировки см. в разделе "Создание трассировки".
TRACE_PRODUCE_BLACKBOX
имеет следующие характеристики:
Это трассировка отката. Значение по умолчанию @filecount равно 2, но может быть переопределено пользователем с помощью параметра @filecount .
Значение по умолчанию @maxfilesize, как и в других трассировках, составляет 5 МБ и может быть изменено.
Не удалось задать имя файла. Файл сохраняется следующим образом
N'%SQLDIR%\MSSQL\DATA\blackbox.trc'
:В трассировке будут содержаться только следующие события и их столбцы.
- Запуск RPC
- Запуск пакетной службы
- Исключение
- Внимание
События или столбцы не могут быть добавлены или удалены из этой трассировки.
Фильтры не могут быть указаны для этой трассировки.
Разрешения
Требуется разрешение ALTER TRACE.