Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Считывает файлы XEL журнала событий, созданные целевым объектом расширенных событий event_file . Каждая строка в результирующем наборе представляет событие. Данные события возвращаются в формате XML.
Файлы XEL также можно считывать SQL Server Management Studio. Пошаговое руководство см . в кратком руководстве по расширенным событиям.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Аргументы
path
Путь к файлам для чтения. путь — nvarchar(260) без значения по умолчанию.
При использовании с файлами в локальной файловой системе путь должен содержать имя файла журнала сеанса событий. Имя файла может содержать
*подстановочный знак для чтения данных из нескольких файлов.При использовании с большими двоичными объектами в контейнере службы хранилища Azure путь — это URL-адрес HTTP, созданный объединением двух частей:
Путь к контейнеру хранилища Azure, за которым следует косая черта (
/).Общий префикс для имен больших двоичных объектов в контейнере, который должен быть прочитан. Чтобы прочитать один большой двоичный объект, используйте полное имя большого двоичного объекта.
Например, использование
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessionв качестве пути извлекает данные из всех больших двоичных объектов с именами, начинаяxe_sessionс, и независимо от оставшейся части имени большого двоичного объекта, включая расширение. Не удается указать подстановочные знаки.
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 аргумент указан в качестве аргумента, все файлы, найденные в пути , считываются.
Имя файла должно быть значением, возвращаемым в результирующем наборе sys.fn_xe_file_target_read_file вызова функции с тем же путем.
initial_offset
Используется для указания последнего смещения, прочитанного ранее. Пропускает все события до смещения (включительно). Перечисление событий начинается после указанного смещения.
initial_offset является bigint. Если NULL задан в качестве аргумента, весь файл считывается.
Примечание.
initial_file_name и initial_offset являются парными аргументами. Если указать значение для любого аргумента, необходимо указать значение для другого аргумента.
Таблица возвращенной информации
| Имя столбца | Тип данных | 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 и Управляемого экземпляра 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 файлы, созданные event_file целевым объектом, всегда хранятся в виде больших двоичных объектов в контейнере службы хранилища 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());
В. Получение данных из больших двоичных объектов в контейнере службы хранилища Azure
Считывайте данные из всех больших двоичных объектов в контейнере с именами, начиная xe_session_с.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
NULL,
NULL
);
Чтение данных из большого xe_session_0_133614763336380000.xel двоичного объекта.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
NULL,
NULL,
NULL
);
Чтение данных из большого xe_session_0_133614763336380000.xel двоичного объекта, начиная с смещения 33280.
SELECT *
FROM sys.fn_xe_file_target_read_file(
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_',
NULL,
'https://<storage-account-name>.blob.core.windows.net/<container-name>/xe_session_0_133614763336380000.xel',
33280
);
Связанный контент
- Динамические административные представления расширенных событий
- Представления каталога расширенных событий (Transact-SQL)
- Обзор расширенных событий
- Целевые объекты для расширенных событий
- Просмотр данных событий в SQL Server Management Studio
- Преобразование существующего скрипта трассировки SQL в сеанс расширенных событий
- Использование сеанса system_health