sys.fn_xe_file_target_read_file (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
Lee los archivos creados por el destino de archivo asincrónico de eventos extendidos. Se devuelve un evento, en formato XML, por cada fila.
El destino De eventos extendidos event_file
almacena los datos que recibe en un formato binario que no es legible por el usuario. Lea el contenido del .xel
archivo con la sys.fn_xe_file_target_read_file
función . Estos archivos también se pueden leer desde Management Studio. Para ver un tutorial, consulte Inicio rápido: Eventos extendidos.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
Argumentos
path
Ruta de acceso a los archivos que se van a leer. path puede contener caracteres comodín e incluir el nombre de un archivo. path es nvarchar(260) sin valor predeterminado. En el contexto de Azure SQL Database, este valor es una dirección URL HTTP a un archivo de Azure Storage.
mdpath
Ruta de acceso al archivo de metadatos que corresponde al archivo o los archivos especificados por el argumento path . mdpath es nvarchar(260) sin valor predeterminado.
En SQL Server 2012 (11.x) y versiones posteriores, no necesita este parámetro. Se ha conservado por compatibilidad con versiones anteriores, para los archivos de registro generados en versiones anteriores de SQL Server. En SQL Server 2016 (13.x) y versiones posteriores, este parámetro se puede dar como NULL
, ya .xem
que los archivos ya no se usan.
initial_file_name
Primer archivo que se va a leer de la ruta de acceso. initial_file_name es nvarchar(260) sin valor predeterminado. Si NULL
se especifica como argumento, se leen todos los archivos que se encuentran en la ruta de acceso .
Nota:
initial_file_name y initial_offset son argumentos emparejados. Si especifica un valor para cualquiera de los argumentos, debe especificar un valor para el otro argumento.
initial_offset
Se usa para especificar el último desplazamiento leído previamente y omite todos los eventos hasta el desplazamiento (incluido). La enumeración de eventos comienza después del desplazamiento especificado. initial_offset es bigint. Si NULL
se especifica como argumento, se lee todo el archivo.
Tabla devuelta
Nombre de la columna | Tipo de datos | Descripción |
---|---|---|
module_guid |
uniqueidentifier | GUID del módulo de eventos. No acepta valores NULL. |
package_guid |
uniqueidentifier | GUID del paquete de eventos. No acepta valores NULL. |
object_name |
nvarchar(256) | El nombre del evento. No acepta valores NULL. |
event_data |
nvarchar(max) | Contenido del evento, en formato XML. No acepta valores NULL. |
file_name |
nvarchar(260) | Nombre del archivo que contiene el evento. No acepta valores NULL. |
file_offset |
bigint | Desplazamiento del bloque en el archivo que contiene el evento. No acepta valores NULL. |
timestamp_utc |
datetime2(7) | Fecha y hora (zona horaria UTC) del evento. No acepta valores NULL. Se aplica a: SQL Server 2017 (14.x) y versiones posteriores, y Azure SQL Database. |
Comentarios
La lectura de grandes conjuntos de resultados mediante la sys.fn_xe_file_target_read_file
ejecución en Management Studio podría producir un error. Use el modo Resultados al archivo (en SQL Server Management Studio, Ctrl+Mayús+F) para exportar grandes conjuntos de resultados a un archivo legible para leer el archivo con otra herramienta en su lugar.
SQL Server 2008 (10.0.x) y SQL Server 2008 R2 (10.50.x) aceptan los resultados de seguimiento generados en formato XEL y XEM. Eventos extendidos de SQL Server 2012 (11.x) solo admiten resultados de seguimiento en formato XEL. Se recomienda usar Management Studio para leer los resultados del seguimiento en formato XEL.
SQL de Azure
En Azure SQL Instancia administrada o Azure SQL Database, almacene .xel
archivos en Azure Blob Storage. Puede usar sys.fn_xe_file_target_read_file
para leer las sesiones de eventos extendidas que cree y almacene en Azure Blob Storage. Por ejemplo, consulte Creación de una sesión de eventos con un destino de event_file en Azure Storage.
Si especifica caracteres comodín o una ruta de acceso para un sistema de archivos local, recibirá un mensaje de error similar al siguiente:
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
Permisos
En SQL Server 2019 (15.x) y versiones anteriores, requiere VIEW SERVER STATE
permiso en el servidor.
En SQL Server 2022 (16.x) y versiones posteriores, requiere VIEW SERVER PERFORMANCE STATE
permiso en el servidor.
Ejemplos
A Recuperación de datos de destinos de archivos
Para SQL Server 2014 (12.x) y versiones anteriores, en el ejemplo siguiente se obtienen todas las filas de todos los archivos, incluido el .xel
archivo y .xem
. En este ejemplo, los destinos de archivo y los metarchivos se encuentran en la carpeta de seguimiento de la C:\traces\
carpeta .
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
En SQL Server 2016 (13.x) y versiones posteriores, en el ejemplo siguiente se recuperan eventos dentro de todos los .xel
archivos de la carpeta predeterminada. La ubicación predeterminada está \MSSQL\Log
dentro de la carpeta de instalación de la instancia.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
En SQL Server 2017 (14.x) y versiones posteriores, en el ejemplo siguiente solo se recuperan los datos del último día, de la sesión de system_health integrada. La sesión system_health es una sesión de Eventos extendidos que se incluye de forma predeterminada con SQL Server. Para obtener más información, consulta Usar la sesión 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());
Contenido relacionado
- Vistas de administración dinámica de eventos extendidos
- Vistas de catálogo de eventos extendidos (Transact-SQL)
- Información general sobre Eventos extendidos
- Destinos de Eventos extendidos
- Ver datos de eventos en SQL Server Management Studio
- Convertir un script de seguimiento de SQL existente en una sesión de eventos extendidos
- Uso de la sesión de system_health