Хранимая процедура sp_trace_create (Transact-SQL)
Создает определение трассировки. Новая трассировка будет находиться в остановленном состоянии.
Синтаксис
sp_trace_create [ @traceid = ] trace_id OUTPUT
, [ @options = ] option_value
, [ @tracefile = ] 'trace_file'
[ , [ @maxfilesize = ] max_file_size ]
[ , [ @stoptime = ] 'stop_time' ]
[ , [ @filecount = ] 'max_rollover_files' ]
Аргументы
[ @traceid= ] trace_id
Номер, назначенный Microsoft SQL Server новой трассировке. Любое значение, предложенное пользователем, не будет учитываться. Аргумент trace_id имеет тип int и значение по умолчанию NULL. Пользователь применяет значение trace_id, чтобы идентифицировать, редактировать и управлять трассировкой, определенной данной хранимой процедурой.[ @options= ] option_value
Указывает набор параметров для трассировки. Аргумент option_value имеет тип int и не имеет значения по умолчанию. Пользователи могут выбирать сочетания этих параметров путем указания их суммарного значения. Например, чтобы установить параметры TRACE_FILE_ROLLOVER и SHUTDOWN_ON_ERROR, достаточно задать значение 6 для аргумента option_value.В следующей таблице содержится список параметров, их значений и описаний.
Имя параметра
Значение параметра
Описание
TRACE_FILE_ROLLOVER
2
Указывает, что при достижении размера аргумента max_file_size текущий трассировочный файл закрывается и создается новый. Все новые записи будут сохраняться в новый файл. Новый файл будет иметь то же имя, что и предыдущий, но в конец имени будет добавлено число, показывающее его порядковый номер. Например, если изначально трассировочный файл назывался filename.trc, то следующий трассировочный файл будет называться filename_1.trc, имя следующего трассировочного файла будет filename_2.trc и т. д.
По мере увеличения количества трассировочных файлов число, добавляемое в конец имени файла, будет также последовательно увеличиваться.
SQL Server по умолчанию в качестве значения аргумента max_file_size использует 5 МБ, если он указан без указания значения аргумента max_file_size.
SHUTDOWN_ON_ERROR
4
Указывает, что если трассировка не может быть записана в файл по какой-либо причине, SQL Server останавливается. Этот параметр полезен в случае проведения трассировок по проверке безопасности.
TRACE_PRODUCE_BLACKBOX
8
Указывает, что запись последних 5 МБ трассировочных сведений, формируемых сервером, будет сохранена на сервере. Значение параметра TRACE_PRODUCE_BLACKBOX несовместимо со всеми другими.
[ @tracefile= ] 'trace_file'
Указывает расположение и имя файла, в который будет сохраняться трассировка. Аргумент trace_file имеет тип nvarchar(245) и не имеет значения по умолчанию. Аргумент trace_file может быть как именем локального каталога (например, N 'C:\MSSQL\Trace\trace.trc'), так и путем в формате UNC к общему ресурсу (N'\\сервер\сетевой_ресурс\папка\trace.trc').SQL Server добавляет расширение TRC ко всем именам файлов трассировки. Если указаны аргументы TRACE_FILE_ROLLOVER и max_file_size, SQL Server создаст новый файл трассировки, когда предыдущий файл достигнет своего максимального размера. Новый файл будет иметь то же имя, что и оригинальный, но с добавлением _n для определения очередности, начиная с 1. Например, если имя первого трассировочного файла filename.trc, второй файл будет называться filename_1.trc.
Если используется параметр TRACE_FILE_ROLLOVER, рекомендуется не использовать в имени исходного файла трассировки символы подчеркивания. Если используются символы подчеркивания, выполняются следующие действия.
Приложение SQL Server Profiler не загружает файлы продолжения автоматически и не предлагает загрузить эти файлы (если настроен один из этих вариантов работы с файлами продолжения).
Функция fn_trace_gettable не загружает файлы продолжения (если этот параметр указан в аргументе number_files), в которых имя исходного файла трассировки завершается подчеркиванием и числовым значением. (Это не относится к подчеркиваниям и числам, которые автоматически добавляются, когда выполняется переключение на файл продолжения.)
Примечание В качестве временного решения в обоих случаях можно переименовать файлы трассировки, исключив подчеркивания из имени исходного файла. Например, если исходный файл имеет имя my_trace.trc, а файл продолжения имеет имя my_trace_1.trc, можно задать для файлов имена mytrace.trc и mytrace_1.trc перед открытием в приложении Приложение SQL Server Profiler.
Аргумент trace_file не может быть указан при использовании параметра TRACE_PRODUCE_BLACKBOX.
[ @maxfilesize= ] max_file_size
Указывает максимальный размер трассировочного файла в мегабайтах (МБ). Аргумент max_file_size имеет тип bigint и значение по умолчанию 5.Если этот аргумент указан без параметра TRACE_FILE_ROLLOVER, трассировка остановит запись в файл, когда используемое дисковое пространство достигнет значения, установленного в аргументе max_file_size.
[ @stoptime= ] 'stop_time'
Указывает дату и время, когда трассировка будет остановлена. Аргумент stop_time имеет тип datetime и значение по умолчанию NULL. Если указано значение NULL, трассировка будет работать до тех пор, пока не будет остановлена вручную или пока не остановится сервер.Если указаны аргументы stop_time и max_file_size, а параметр TRACE_FILE_ROLLOVER не указан, трассировка остановится либо в указанный момент времени, либо по достижении максимального размера файла. Если указаны аргументы stop_time, max_file_size и параметр TRACE_FILE_ROLLOVER, трассировка остановится в указанное время, если при этом не будет исчерпано свободное пространство на диске.
[ @filecount= ] 'max_rollover_files'
Указывает максимальное количество трассировочных файлов, образованных с одним базовым именем. Аргумент max_rollover_files имеет тип int и должен иметь значение больше 1. Этот аргумент имеет смысл только в случае, если указан параметр TRACE_FILE_ROLLOVER. Если указан аргумент max_rollover_files, SQL Server будет хранить файлы трассировки в количестве не более max_rollover_files, удаляя самые старые файлы перед открытием новых. SQL Server отслеживает возраст файлов трассировки, добавляя число в конец базового имени файла.Например, если в качестве аргумента trace_file указано «c:\mytrace», файл с именем «c:\mytrace_123.trc» будет старше файла с именем «c:\mytrace_124.trc». Если аргумент max_rollover_files установлен в 2, SQL Server удаляет трассировочный файл «c:\mytrace_123.trc» перед созданием трассировочного файла «c:\mytrace_125.trc».
Обратите внимание, что SQL Server пытается удалить файл только один раз и не может удалить файл, используемый другим процессом. Поэтому, если другое приложение работает с файлами трассировки во время трассировки, SQL Server может оставить эти файлы в файловой системе.
Значения кода возврата
В следующей таблице описаны значения кодов, которые могут быть возвращены пользователю при завершении хранимой процедуры.
Код возврата |
Описание |
---|---|
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_xx) строго типизированы. Если эти аргументы указываются с неправильными типами данных входных параметров, как указано в описании их аргументов, хранимая процедура возвратит ошибку.
Для вызова процедуры sp_trace_create учетная запись службы SQL Server должна иметь разрешение на запись в папку с файлами трассировки. Если учетная запись службы SQL Server не имеет прав администратора на компьютере, на котором находится файл трассировки, необходимо предоставить ей разрешение на запись.
Примечание |
---|
Трассировочный файл, созданный процедурой sp_trace_create, можно автоматически загружать в таблицу с помощью системной функции fn_trace_gettable. Дополнительные сведения об использовании этой системной функции см. в разделе fn_trace_gettable (Transact-SQL). |
Пример использования хранимых процедур трассировки см. в разделе Как создать трассировку (Transact-SQL).
TRACE_PRODUCE_BLACKBOX имеет следующие характеристики.
Это продолжение трассировки. По умолчанию для file_count задается значение 2, но его может изменить пользователь с помощью параметра filecount.
Как и для других трассировок, по умолчанию для file_size задается значение 5 МБ. Оно может быть изменено.
Не удалось задать имя файла. Файл будет сохранен как N'%SQLDIR%\MSSQL\DATA\blackbox.trc'
В трассировке будут содержаться только следующие события и их столбцы.
Запуск RPC
Начало пакета
Исключение
Внимание
События или столбцы нельзя добавить или удалить из данной трассировки.
Для данной трассировки нельзя указать фильтры.
Разрешения
Пользователь должен иметь разрешение ALTER TRACE.