sys.fn_xe_file_target_read_file (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Считывает файлы, созданные асинхронным целевым объектом расширенных событий. Возвращается одно событие в каждой строке в формате XML.
Целевой объект расширенных событий event_file
сохраняет данные, получаемые в двоичном формате, который не является читаемым человеком. Чтение содержимого .xel
файла с sys.fn_xe_file_target_read_file
помощью функции. Эти файлы также можно считывать из Management Studio. Пошаговое руководство см . в кратком руководстве по расширенным событиям.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Аргументы
path
Путь к файлам для чтения. путь может содержать подстановочные знаки и включать имя файла. путь — nvarchar(260) без значения по умолчанию. В контексте База данных SQL Azure это значение является HTTP-URL-адресом файла в служба хранилища Azure.
mdpath
Путь к файлу метаданных, который соответствует файлу или файлам, указанным аргументом пути . mdpath — nvarchar(260) без значения по умолчанию.
В SQL Server 2012 (11.x) и более поздних версиях этот параметр не нужен. Он был сохранен для обратной совместимости для файлов журналов, созданных в предыдущих версиях SQL Server. В SQL Server 2016 (13.x) и более поздних версиях этот параметр можно указать так NULL
, как .xem
файлы больше не используются.
initial_file_name
Первый файл для чтения из пути. initial_file_name — nvarchar(260) без значения по умолчанию. Если NULL
аргумент указан в качестве аргумента, все файлы, найденные в пути , считываются.
Примечание.
initial_file_name и initial_offset являются парными аргументами. Если указать значение для любого аргумента, необходимо указать значение для другого аргумента.
initial_offset
Используется для указания последнего считанного ранее смещения и пропуска всех событий до смещения (включительно). Перечисление событий начинается после указанного смещения. initial_offset является bigint. Если NULL
задан в качестве аргумента, весь файл считывается.
Таблица возвращенной информации
Имя столбца | Тип данных | Description |
---|---|---|
module_guid |
uniqueidentifier | Идентификатор GUID модуля событий. Не допускает значения NULL. |
package_guid |
uniqueidentifier | Идентификатор GUID пакета событий. Не допускает значения NULL. |
object_name |
nvarchar(256) | Имя события. Не допускает значения NULL. |
event_data |
nvarchar(max) | Содержимое события в формате XML. Не допускает значения NULL. |
file_name |
nvarchar(260) | Имя файла, содержащего событие. Не допускает значения NULL. |
file_offset |
bigint | Смещение блока в файле, содержащем событие. Не допускает значения NULL. |
timestamp_utc |
datetime2(7) | Дата и время (часовой пояс UTC) события. Не допускает значения NULL. Область применения: SQL Server 2017 (14.x) и более поздних версий и База данных SQL Azure. |
Замечания
Чтение больших результирующих наборов путем выполнения sys.fn_xe_file_target_read_file
в Management Studio может привести к ошибке. Используйте результаты в режиме файлов (в СРЕДЕ SQL Server Management Studio, CTRL+SHIFT+F) для экспорта больших результирующих наборов в удобочитаемый файл, чтобы считывать файл с другим средством.
SQL Server 2008 (10.0.x) и SQL Server 2008 R2 (10.50.x) принимают результаты трассировки, созданные в формате XEL и XEM. Расширенные события SQL Server 2012 (11.x) поддерживают только результаты трассировки в формате XEL. Рекомендуется использовать Management Studio для чтения результатов трассировки в формате XEL.
Azure SQL
В Управляемый экземпляр SQL Azure или База данных SQL Azure сохраните .xel
файлы в Хранилище BLOB-объектов Azure. Вы можете использовать sys.fn_xe_file_target_read_file
для чтения из сеансов расширенных событий, которые создаются и сохраняются в хранилище BLOB-объектов Azure. Например, пошаговое руководство по созданию сеанса событий с помощью целевого объекта event_file в служба хранилища Azure.
Если указать подстановочный знак и (или) путь для локальной файловой системы, вы получите сообщение об ошибке, аналогичное следующему:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Разрешения
В SQL Server 2019 (15.x) и предыдущих версиях требуется VIEW SERVER STATE
разрешение на сервере.
В SQL Server 2022 (16.x) и более поздних версиях требуется VIEW SERVER PERFORMANCE STATE
разрешение на сервере.
Примеры
А. Получение данных из целевых объектов файлов
Для SQL Server 2014 (12.x) и предыдущих версий следующий пример получает все строки из всех файлов, включая .xel
и .xem
файл. В этом примере целевые объекты и метафайлы файлов находятся в папке трассировки в папке C:\traces\
.
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
В SQL Server 2016 (13.x) и более поздних версиях следующий пример извлекает события внутри всех .xel
файлов в папке по умолчанию. Расположение по умолчанию находится \MSSQL\Log
в папке установки экземпляра.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
В SQL Server 2017 (14.x) и более поздних версиях в следующем примере извлекаются только данные из последнего дня из встроенного сеанса system_health. Сеанс system_health — это сеанс расширенных событий, включенный по умолчанию в SQL Server. Дополнительные сведения см. в разделе "Использование сеанса system_health".
SELECT *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', NULL, NULL, NULL)
WHERE CAST(timestamp_utc AS DATETIME2(7)) > DATEADD(DAY, -1, GETUTCDATE());
Связанный контент
- Динамические административные представления расширенных событий
- Представления каталога расширенных событий (Transact-SQL)
- Обзор расширенных событий
- Целевые объекты для расширенных событий
- Просмотр данных событий в SQL Server Management Studio
- Преобразование существующего скрипта трассировки SQL в сеанс расширенных событий
- Использование сеанса system_health