Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Lee los archivos XEL del registro de eventos creados por el destino de eventos extendidos event_file . Cada fila del conjunto de resultados representa un evento. Los datos del evento se devuelven en formato XML.
SQL Server Management Studio también puede leer archivos XEL. 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 es nvarchar(260) sin valor predeterminado.
Cuando se usa con archivos en el sistema de archivos local, la ruta de acceso debe incluir el nombre de un archivo de registro de sesión de eventos. El nombre de archivo puede contener
*como carácter comodín para leer datos de varios archivos.Cuando se usa con blobs en un contenedor de Azure Storage, la ruta de acceso es una dirección URL HTTP construida por la concatenación de dos partes:
Ruta de acceso a un contenedor de almacenamiento de Azure Storage, seguido de una barra diagonal (
/).Prefijo común para los nombres de blobs en el contenedor que se deben leer. Para leer un único blob, use el nombre completo del blob.
Por ejemplo, el uso
https://<storage-account-name>.blob.core.windows.net/container-name>/xe_sessionde como ruta de acceso recupera datos de todos los blobs con nombres a partirxe_sessionde y, independientemente del resto del nombre del blob, incluida la extensión. No se pueden especificar caracteres comodín.
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 conserva por motivos de 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 .
El nombre de archivo debe ser un valor devuelto en el conjunto de resultados de una sys.fn_xe_file_target_read_file llamada de función con la misma ruta de acceso.
initial_offset
Se usa para especificar la última lectura de desplazamiento anteriormente. Omite todos los eventos hasta el desplazamiento (inclusivo). 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.
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.
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, Azure SQL Database e Instancia administrada de Azure SQL. |
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.
Azure SQL
En Azure SQL Managed Instance o Azure SQL Database, los archivos creados por el event_file destino siempre se almacenan como blobs en un contenedor de Azure Storage.
Puede usar sys.fn_xe_file_target_read_file para leer datos de estos blobs si existe una credencial que permite el acceso al contenedor de Azure Storage. Para ver un tutorial, consulte Creación de una sesión de eventos con un destino de event_file en Azure Storage.
Si especifica una ruta de acceso del 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 archivos en el sistema de archivos local
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());
B. Recuperación de datos de blobs en un contenedor de Azure Storage
Lea los datos de todos los blobs del contenedor con nombres a partir de 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
);
Lee datos del xe_session_0_133614763336380000.xel blob.
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
);
Lea los datos del xe_session_0_133614763336380000.xel blob a partir del desplazamiento 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
);
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