Цель «Файл событий»

Цель «Файл событий» — это цель, осуществляющая запись всех буферов на диск.

В следующей таблице описаны доступные параметры для настройки цели «Файл событий».

Параметр

Допустимые значения

Описание

filename

Любая строка длиной до 260 символов. Это значение обязательно.

Расположение и имя файла.

Можно использовать любое расширение имени файла.

max_file_size

Любое 64-разрядное целое число. Это значение является необязательным.

Верхний предел размера файла в мегабайтах (МБ). Если аргумент max_file_size не указан, файл будет увеличиваться до исчерпания пространства на диске. Размер файла по умолчанию составляет 1 ГБ.

Аргумент max_file_size должен быть больше текущего размера буфера сеанса. Иначе целевой файл нельзя будет инициализировать и появится сообщение о недопустимости значения параметра max_file_size. Текущий размер буферов можно получить с помощью запроса к столбцу buffer_size в динамическом административном представлении sys.dm_xe_sessions.

Если размер файла по умолчанию меньше размера буфера сеанса, рекомендуется задать для параметра max_file_size значение, указанное в столбце max_memory представления каталога sys.server_event_sessions.

Если значение параметра max_file_size превышает размер буферов сеанса, его можно округлить до ближайшей меньшей величины, кратной размеру буфера сеанса. Созданный в результате целевой файл по размеру может быть меньше заданной величины max_file_size Например, если размер буфера составляет 100 МБ, а параметр max_file_size имеет значение 150 МБ, размер результирующего файла округляется до значения 100 МБ, поскольку второй буфер не уместится в оставшихся 50 МБ.

Если размер файла по умолчанию меньше размера буфера сеанса, рекомендуется задать для параметра max_file_size значение, указанное в столбце max_memory представления каталога sys.server_event_sessions.

max_rollover_files

Любое 32-разрядное целое число. Это значение является необязательным.

Максимальное число файлов, хранимых в файловой системе.

increment

Любое 32-разрядное целое число. Это значение является необязательным.

Шаг увеличения размера файла в мегабайтах (МБ). Если не указан, то значением по умолчанию будет двойной размер буфера сеанса.

При первом создании цели «Файл событий» к заданному имени файла присоединяется _0_ и длинное целое число. Это длинное целое число вычисляется как количество миллисекунд, прошедших с 1 января 1600 года до момента создания файла. Последующие файлы продолжения используют тот же формат. Сравнив значения длинных целых, можно определить самый последний файл. В следующем примере показано, как происходит именование файлов в случае, если для параметра filename указано значение «C:\OutputFiles\MyOutput.xel»:

  • первый созданный файл — C:\OutputFiles\MyOutput_0_128500310259380000.xel

  • первый файл продолжения — C:\OutputFiles\MyOutput_0_128505831770890000.xel

  • второй файл продолжения — C:\OutputFiles\MyOutput_0_132410772966237000.xel

Добавление цели к сеансу

Для добавления цели «Файл события» в сеанс расширенных событий необходимо включить следующую инструкцию при создании или изменении сеанса события, заменив file_name нужным именем файла и его расположением.

ADD TARGET package0.event_file(
   SET filename='file_name.xel')

Просмотр целевого вывода

Для просмотра результата цели «Файл» следует использовать функцию sys.fn_xe_file_target_read_file. Рекомендуется представлять данные в виде XML. Вы можете пользоваться следующим синтаксисом, заменив file_name именем файла и его расположением, указанными при добавлении цели.

SELECT *, CAST(event_data AS XML) AS 'event_data_XML'
FROM sys.fn_xe_file_target_read_file('file_name*.xel', NULL, NULL, NULL)

См. также

Справочник

sys.fn_xe_file_target_read_file (Transact-SQL)

CREATE EVENT SESSION (Transact-SQL)

ALTER EVENT SESSION (Transact-SQL)

Основные понятия

Цели расширенных событий SQL Server