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
En este artículo se explican los dos conjuntos de vistas del sistema relacionadas con eventos extendidos. En este artículo se describe lo siguiente:
- Cómo gestionar
JOINvarias vistas del sistema. - Procedimiento para
SELECTdeterminados tipos de información de las vistas del sistema.
Hay dos conjuntos de vistas del sistema para Eventos extendidos:
Vistas de catálogo
- Estas vistas almacenan información sobre la definición de cada sesión de eventos creada por CREATE EVENT SESSION (Transact-SQL). Pero estas vistas no saben si las sesiones empezaron a ejecutarse en algún momento.
- Por ejemplo, si el Object Explorer de SSMS no muestra ninguna sesión de eventos definida, seleccionar desde la vista
sys.server_event_session_targetsdevolverá cero filas.
- Por ejemplo, si el Object Explorer de SSMS no muestra ninguna sesión de eventos definida, seleccionar desde la vista
- La mayoría de los ejemplos se escriben para SQL Server y Azure SQL Managed Instance. Sin embargo, con pequeñas modificaciones, se ejecutarían en Azure SQL Database y SQL Database en Fabric al cambiar el
serveren el nombre de la DMV adatabase:-
sys.server_event_session*es el prefijo de nombre en SQL Server y Azure SQL Managed Instance. -
sys.database_event_session*es el prefijo de nombre en Azure SQL Database y SQL Database en Fabric. - Para obtener más información sobre cada uno, consulte Vistas de catálogo de eventos extendidos.
-
Vistas de administración dinámica (DMV)
Almacenan información sobre la actividad actual de las sesiones de eventos en ejecución, pero tienen poca información sobre la definición de las sesiones.
- Aunque todas las sesiones de eventos están detenidas actualmente, una
SELECTdesde la vistasys.dm_xe_packagessigue devolviendo filas porque varios paquetes se cargan en la memoria activa cuando se inicia un servidor. - Por el mismo motivo,
sys.dm_xe_objectsysys.dm_xe_object_columnssiguen devolviendo filas.
- Aunque todas las sesiones de eventos están detenidas actualmente, una
El prefijo del nombre de las DMV de Eventos extendidos es el siguiente:
-
sys.dm_xe_*es el prefijo de nombre en SQL Server y Azure SQL Managed Instance. -
sys.dm_xe_database_*suele ser el prefijo de nombre en Azure SQL Database y en la base de datos SQL de Fabric.
-
Permissions
Para SELECT desde las vistas del sistema, es necesario el permiso siguiente:
- SQL Server 2019 (15.x) y versiones anteriores requieren
VIEW SERVER STATEpermiso en el servidor. - SQL Server 2022 (16.x) y versiones posteriores requieren
VIEW SERVER PERFORMANCE STATEpermiso en el servidor. - Azure SQL Database y SQL Database en Fabric requieren
VIEW DATABASE PERFORMANCE STATEpermiso en la base de datos.
Vistas de catálogo
Para los fines de esta página, cree una sesión de eventos extendidos con SSMS o con T-SQL. Instale la versión más reciente de SQL Server Management Studio (SSMS).
Creación de una sesión en SQL Server Management Studio (SSMS)
En SSMS, en su Explorador de objetos, puede iniciar el cuadro de diálogo Nueva sesión expandiendo Administración>Eventos extendidos, y, a continuación, haga clic con el botón derecho en Sesiones>Nueva sesión.
En el cuadro de diálogo grande de Nueva sesión, vemos en la primera sección con la etiqueta General que se ha seleccionado la opción para Iniciar la sesión de eventos al iniciar el servidor.
A continuación, en la sección Eventos , vemos que se eligió el lock_deadlock evento. Para ese evento, vemos que se han seleccionado tres Acciones . Esto significa que se seleccionó el botón Configurar , que se vuelve gris después de seleccionarse.
> Events, Global Fields (Actions).
A continuación, todavía en la sección Eventos>Configurar, vemos que resource_type se ha establecido en PAGE. Esto significa que los datos del evento no se enviarán desde el motor de eventos al destino si el valor de resource_type es distinto de PAGE.
Podemos ver filtros de predicado adicionales para el nombre de la base de datos y para un contador.
Después, en la sección Almacenamiento de datos, vemos que se ha elegido como destino event_file. Además, se ha seleccionado la opción Habilitar sustitución incremental de archivos.
Por último, en la sección Avanzadas, vemos que el valor de Latencia máxima de envío se ha reducido a 4 segundos.
Creación de una sesión de eventos en T-SQL
Independientemente de cómo se cree una definición de sesión de evento, desde SSMS, la sesión se puede convertir en un script de Transact-SQL idéntico. Puede examinar las capturas de pantalla de Nueva sesión anteriores y comparar sus especificaciones visibles con las cláusulas del siguiente script T-SQL CREATE EVENT SESSION generado.
Para realizar ingeniería inversa en una sesión de eventos, en el Explorador de Objetos, puede hacer clic con el botón derecho en el nodo de su sesión y, a continuación, elegir Script Session as>CREATE para el >Portapapeles.
CREATE EVENT SESSION [event_session_test3]
ON SERVER -- Or, if on Azure SQL Database, ON DATABASE.
ADD EVENT sqlserver.lock_deadlock
(
SET
collect_database_name = (1)
ACTION
(
package0.collect_system_time,
package0.event_sequence,
sqlserver.client_hostname
)
WHERE
(
[database_name] = N'InMemTest2'
AND [package0].[counter] <= (16)
AND [resource_type] = (6)
)
)
ADD TARGET package0.event_file
(
SET
filename = N'c:\temp\\event_session_test3_EF.xel',
max_file_size = (20),
max_rollover_files = (2)
)
WITH
(
MAX_MEMORY = 4096 KB,
EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
MAX_DISPATCH_LATENCY = 4 SECONDS,
MAX_EVENT_SIZE = 0 KB,
MEMORY_PARTITION_MODE = NONE,
TRACK_CAUSALITY = OFF,
STARTUP_STATE = ON
);
Vista de catálogo SELECT JOIN UNION
La siguiente instrucción T-SQL SELECT solo es larga porque UNE varios SELECT pequeños juntos. Todas las instrucciones SELECT pequeñas se pueden ejecutar de manera independiente. Dichas instrucciones muestran cómo se deben combinar varias vistas de catálogo del sistema.
SELECT
s.name AS [Session-Name],
'1_EVENT' AS [Clause-Type],
'Event-Name' AS [Parameter-Name],
e.name AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'2_EVENT_SET' AS [Clause-Type],
f.name AS [Parameter-Name],
f.value AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
JOIN sys.server_event_session_fields As f
ON f.event_session_id = s.event_session_id
AND f.object_id = e.event_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'3_EVENT_ACTION' AS [Clause-Type],
a.package + '.' + a.name
AS [Parameter-Name],
'(Not_Applicable)' AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
JOIN sys.server_event_session_actions As a
ON a.event_session_id = s.event_session_id
AND a.event_id = e.event_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'4_EVENT_PREDICATES' AS [Clause-Type],
e.predicate AS [Parameter-Name],
'(Not_Applicable)' AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_events AS e
ON e.event_session_id = s.event_session_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'5_TARGET' AS [Clause-Type],
t.name AS [Parameter-Name],
'(Not_Applicable)' AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_targets AS t
ON t.event_session_id = s.event_session_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'6_TARGET_SET' AS [Clause-Type],
f.name AS [Parameter-Name],
f.value AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
JOIN sys.server_event_session_targets AS t
ON t.event_session_id = s.event_session_id
JOIN sys.server_event_session_fields As f
ON f.event_session_id = s.event_session_id
AND f.object_id = t.target_id
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'7_WITH_MAX_MEMORY' AS [Clause-Type],
'max_memory' AS [Parameter-Name],
s.max_memory AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
WHERE
s.name = 'event_session_test3'
UNION ALL
SELECT
s.name AS [Session-Name],
'7_WITH_STARTUP_STATE' AS [Clause-Type],
'startup_state' AS [Parameter-Name],
s.startup_state AS [Parameter-Value]
FROM
sys.server_event_sessions AS s
WHERE
s.name = 'event_session_test3'
ORDER BY
[Session-Name],
[Clause-Type],
[Parameter-Name]
;
Output
En la tabla siguiente se muestra la salida de la ejecución del objeto anterior SELECT JOIN UNION. Los nombres y valores de los parámetros de salida se asignan a lo que es claramente visible en la instrucción anterior CREATE EVENT SESSION.
| Session-Name | Clause-Type | Parameter-Name | Parameter-Value |
|---|---|---|---|
event_session_test3 |
1_EVENT | Event-Name | lock_deadlock |
event_session_test3 |
2_EVENT_SET | collect_database_name | 1 |
event_session_test3 |
3_EVENT_ACTION | sqlserver.client_hostname | (Not_Applicable) |
event_session_test3 |
3_EVENT_ACTION | sqlserver.collect_system_time | (Not_Applicable) |
event_session_test3 |
3_EVENT_ACTION | sqlserver.event_sequence | (Not_Applicable) |
event_session_test3 |
4_EVENT_PREDICATES | ([sqlserver].[equal_i_sql_unicode_string]([database_name],N'InMemTest2') AND [package0].[counter]<=(16)) |
(Not_Applicable) |
event_session_test3 |
5_TARGET | event_file | (Not_Applicable) |
event_session_test3 |
6_TARGET_SET | nombredearchivo | c:\temp\event_session_test3_EF.xel |
event_session_test3 |
6_TARGET_SET | max_file_size | 20 |
event_session_test3 |
6_TARGET_SET | max_rollover_files | 2 |
event_session_test3 |
7_WITH_MAX_MEMORY | max_memory | 4096 |
event_session_test3 |
7_WITH_STARTUP_STATE | startup_state | 1 |
Con esto se completa la sección sobre vistas de catálogo.
Vistas de administración dinámica (DMV)
En esta sección se proporcionan varias instrucciones Transact-SQL SELECT que cada una sirve a un propósito empresarial útil específico. Además, los SELECT muestran cómo puede combinar JOIN las DMV para cualquier nuevo uso que desee.
La documentación de referencia de las DMV está disponible en Vistas de administración dinámica de eventos extendidos
Todos los objetos que se pueden usar en el área de eventos extendidos proceden de los paquetes que se han cargado en el sistema. En esta sección se enumeran todos los paquetes y sus descripciones.
SELECT --C.1
p.name AS [Package],
p.description AS [Package-Description]
FROM
sys.dm_xe_packages AS p
ORDER BY
p.name;
Output
Esta es una lista de los paquetes.
| Paquete | Package-Description |
|---|---|
filestream |
Eventos extendidos para FILESTREAM y FileTable de SQL Server |
package0 |
Paquete predeterminado. Contiene todos los tipos, asignaciones, operadores de comparación, acciones y destinos estándar |
qds |
Eventos extendidos para Almacén de consultas |
SecAudit |
Eventos de auditoría de seguridad |
sqlclr |
Eventos extendidos para SQL CLR |
sqlos |
Eventos extendidos del sistema operativo SQL |
SQLSatellite |
Eventos extendidos para SQL Server Machine Learning Services |
sqlserver |
Eventos extendidos para Microsoft SQL Server |
sqlsni |
Eventos extendidos para Microsoft SQL Server |
ucs |
Eventos extendidos de la pila de comunicaciones unificadas |
XtpCompile |
Eventos extendidos para la compilación XTP |
XtpEngine |
Eventos extendidos para el motor XTP |
XtpRuntime |
Eventos extendidos para el runtime XTP |
Definiciones de las siglas anteriores:
-
clr= Entorno de Ejecución de Lenguaje Común de .NET -
qds= Almacén de datos de consulta -
sni= Interfaz de red del servidor -
ucs= Pila de comunicaciones unificadas -
xtp= Procesamiento extremo de transacciones
SELECCIONAR todos los elementos disponibles ordenados por tipo
A continuación SELECT se devuelve una fila para cada objeto.
SELECT --C.3
o.object_type AS [Type-of-Item],
p.name AS [Package],
o.name AS [Item],
o.description AS [Item-Description]
FROM
sys.dm_xe_objects AS o
JOIN sys.dm_xe_packages AS p ON o.package_guid = p.guid
WHERE
o.object_type IN ('action' , 'target' , 'pred_source')
AND
(
(o.capabilities & 1) = 0
OR
o.capabilities IS NULL
)
ORDER BY
[Type-of-Item],
[Package],
[Item];
Campos de datos disponibles para el evento
A continuación, se devuelven todos los campos de datos específicos de su tipo de evento.
- Anote el elemento de la cláusula
WHERE:column_type = 'data'. - Además, tendría que editar el valor de la
WHEREcláusula parao.name =.
SELECT -- C.4
p.name AS [Package],
c.object_name AS [Event],
c.name AS [Column-for-Predicate-Data],
c.description AS [Column-Description]
FROM
sys.dm_xe_object_columns AS c
JOIN sys.dm_xe_objects AS o
ON o.name = c.object_name
JOIN sys.dm_xe_packages AS p
ON p.guid = o.package_guid
WHERE
c.column_type = 'data'
AND
o.object_type = 'event'
AND
o.name = '\<EVENT-NAME-HERE!>' --'lock_deadlock'
ORDER BY
[Package],
[Event],
[Column-for-Predicate-Data];
Output
Las filas siguientes fueron devueltas por el anterior SELECT, WHERE o.name = 'lock_deadlock':
- Cada fila representa un filtro opcional para el
sqlserver.lock_deadlockevento. - La
Column-Descriptioncolumna se omite en la siguiente presentación. Su valor suele serNULL. - Se trata de una salida real, excepto para la columna Descripción omitida, que suele ser
NULL. - Estas filas son
WHERE object_type = 'lock_deadlock'.
| Paquete | Evento | Column-for-Predicate-Data |
|---|---|---|
sqlserver |
lock_deadlock |
associated_object_id |
sqlserver |
lock_deadlock |
database_id |
sqlserver |
lock_deadlock |
database_name |
sqlserver |
lock_deadlock |
deadlock_id |
sqlserver |
lock_deadlock |
duration |
sqlserver |
lock_deadlock |
lockspace_nest_id |
sqlserver |
lock_deadlock |
lockspace_sub_id |
sqlserver |
lock_deadlock |
lockspace_workspace_id |
sqlserver |
lock_deadlock |
mode |
sqlserver |
lock_deadlock |
object_id |
sqlserver |
lock_deadlock |
owner_type |
sqlserver |
lock_deadlock |
resource_0 |
sqlserver |
lock_deadlock |
resource_1 |
sqlserver |
lock_deadlock |
resource_2 |
sqlserver |
lock_deadlock |
resource_description |
sqlserver |
lock_deadlock |
resource_type |
sqlserver |
lock_deadlock |
transaction_id |
sys.dm_xe_map_values y campos de eventos
A continuación se SELECT incluye un JOIN para la sys.dm_xe_map_values vista.
El propósito de SELECT es mostrar los numerosos campos entre los que puede elegir para la sesión de eventos. Los campos de evento se pueden usar de dos maneras:
- Para elegir qué valores de campo se escribirán en su destino para cada ocurrencia de evento.
- Para filtrar qué repeticiones de eventos se enviarán desde el destino y cuáles se conservarán.
SELECT --C.5
dp.name AS [Package],
do.name AS [Object],
do.object_type AS [Object-Type],
'o--c' AS [O--C],
dc.name AS [Column],
dc.type_name AS [Column-Type-Name],
dc.column_type AS [Column-Type],
dc.column_value AS [Column-Value],
'c--m' AS [C--M],
dm.map_value AS [Map-Value],
dm.map_key AS [Map-Key]
FROM sys.dm_xe_objects AS do
JOIN sys.dm_xe_object_columns AS dc
ON dc.object_name = do.name
JOIN sys.dm_xe_map_values AS dm
ON dm.name = dc.type_name
JOIN sys.dm_xe_packages AS dp
ON dp.guid = do.package_guid
WHERE
do.object_type = 'event'
AND
do.name = '\<YOUR-EVENT-NAME-HERE!>' --'lock_deadlock'
ORDER BY
[Package],
[Object],
[Column],
[Map-Value];
Output
A continuación, se muestra un muestreo de las más de 100 filas reales de salida del T-SQL anterior SELECT. La fila de resource_type es relevante para el filtrado de predicado usado en el ejemplo de event_session_test3 en otra parte de este artículo.
/*** 5 sampled rows from the actual rows returned.
NOTE: 'resource_type' under 'Column'.
Package Object Object-Type O--C Column Column-Type-Name Column-Type Column-Value C--M Map-Value Map-Key
------- ------ ----------- ---- ------ ---------------- ----------- ------------ ---- --------- -------
sqlserver lock_deadlock event o--c CHANNEL etw_channel readonly 2 c--m Operational 4
sqlserver lock_deadlock event o--c KEYWORD keyword_map readonly 16 c--m access_methods 1024
sqlserver lock_deadlock event o--c mode lock_mode data NULL c--m IX 8
sqlserver lock_deadlock event o--c owner_type lock_owner_type data NULL c--m Cursor 2
sqlserver lock_deadlock event o--c resource_type lock_resource_type data NULL c--m PAGE 6
Therefore, on your CREATE EVENT SESSION statement, in its ADD EVENT WHERE clause,
you could put:
WHERE( ... resource_type = 6 ...) -- Meaning: 6 = PAGE.
***/
Parámetros para destinos
A continuación, SELECT devuelve cada parámetro de su objetivo. Cada parámetro tiene una etiqueta para indicar si es obligatorio. Los valores que asigne a los parámetros afectarán al comportamiento del destino.
- Anote el elemento de la cláusula
WHERE:object_type = 'customizable'. - Además, tendría que editar el valor de la
WHEREcláusula parao.name =.
SELECT --C.6
p.name AS [Package],
o.name AS [Target],
c.name AS [Parameter],
c.type_name AS [Parameter-Type],
CASE c.capabilities_desc
WHEN 'mandatory' THEN 'YES_Mandatory'
ELSE 'Not_mandatory'
END AS [IsMandatoryYN],
c.description AS [Parameter-Description]
FROM
sys.dm_xe_objects AS o
JOIN sys.dm_xe_packages AS p
ON o.package_guid = p.guid
LEFT OUTER JOIN sys.dm_xe_object_columns AS c
ON o.name = c.object_name
AND c.column_type = 'customizable' -- !
WHERE
o.object_type = 'target'
AND
o.name LIKE '%' -- Or '\<YOUR-TARGET-NAME-HERE!>'.
ORDER BY
[Package],
[Target],
[IsMandatoryYN] DESC,
[Parameter];
Output
Las siguientes filas de parámetros son un pequeño subconjunto de los devueltos por el anterior SELECT.
/*** Actual output, all rows, where target name = 'event_file'.
Package Target Parameter Parameter-Type IsMandatoryYN Parameter-Description
------- ------ --------- -------------- ------------- ---------------------
package0 event_file filename unicode_string_ptr YES_Mandatory Specifies the location and file name of the log
package0 event_file increment uint64 Not_mandatory Size in MB to grow the file
package0 event_file lazy_create_blob boolean Not_mandatory Create blob upon publishing of first event buffer, not before.
package0 event_file max_file_size uint64 Not_mandatory Maximum file size in MB
package0 event_file max_rollover_files uint32 Not_mandatory Maximum number of files to retain
package0 event_file metadatafile unicode_string_ptr Not_mandatory Not used
***/
DMV SELECT de convertir la columna target_data a XML
Este DMV SELECT retorna filas de datos del destino de su sesión de eventos activa. Los datos se convierten a XML, lo que hace que la celda devuelta sea seleccionable para facilitar su visualización en SSMS.
- Si se detiene la sesión de eventos, esto devolverá
SELECTcero filas. - Tendría que editar el valor de una cláusula
WHEREparas.name =.
SELECT --C.7
s.name,
t.target_name,
CAST(t.target_data AS XML) AS [XML-Cast]
FROM
sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
ON s.address = t.event_session_address
WHERE
s.name = '\<Your-Session-Name-Here!>';
Salida, la única fila, incluida la celda XML
Esta es la única fila que resulta de la anterior SELECT. La columna XML-Cast contiene una cadena de XML que SSMS entiende es XML. Por lo tanto, SSMS entiende que debe hacer que la XML-Cast celda sea seleccionable.
Para esta ejecución:
- El valor
s.name =se estableció en una sesión de eventos para el eventocheckpoint_begin. - El destino era ring_buffer.
name target_name XML-Cast
---- ----------- --------
checkpoint_session_ring_buffer2 ring_buffer <RingBufferTarget truncated="0" processingTime="0" totalEventsProcessed="2" eventCount="2" droppedCount="0" memoryUsed="104"><event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:23.508Z"><data name="database_id"><type name="uint32" package="package0" /><value>5</value></data></event><event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:26.975Z"><data name="database_id"><type name="uint32" package="package0" /><value>5</value></data></event></RingBufferTarget>
Salida, XML visualizado de forma legible cuando se selecciona la celda
Cuando se selecciona la celda XML-Cast, aparece la siguiente pantalla bonita.
<RingBufferTarget truncated="0" processingTime="0" totalEventsProcessed="2" eventCount="2" droppedCount="0" memoryUsed="104">
<event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:23.508Z">
<data name="database_id">
<type name="uint32" package="package0" />
<value>5</value>
</data>
</event>
<event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T01:28:26.975Z">
<data name="database_id">
<type name="uint32" package="package0" />
<value>5</value>
</data>
</event>
</RingBufferTarget>
SELECT desde una función para recuperar datos de event_file de la unidad de disco
Supongamos que la sesión de eventos recopiló algunos datos y después se detuvo. Si la sesión fue definida para usar el destino de event_file, aún puede recuperar los datos llamando a la función sys.fn_xe_target_read_file.
- Debe editar la ruta de acceso y el nombre de archivo en el parámetro de la llamada de función antes de ejecutar este
SELECT.- Ignore los dígitos adicionales que el sistema SQL inserta en los nombres de archivo .XEL reales cada vez que reinicie la sesión. Simplemente asigne el nombre de raíz y la extensión normales.
SELECT --C.8
f.module_guid,
f.package_guid,
f.object_name,
f.file_name,
f.file_offset,
CAST(f.event_data AS XML) AS [Event-Data-As-XML]
FROM
sys.fn_xe_file_target_read_file(
'\<YOUR-PATH-FILE-NAME-ROOT-HERE!>*.xel',
--'c:\temp\\Checkpoint_Begins_ES*.xel', -- Example.
NULL, NULL, NULL
) AS f;
Salida, filas devueltas al aplicar la instrucción SELECT FROM en la función
A continuación se muestran las filas devueltas por la función anterior SELECT FROM . La Event-Data-As-XML columna XML contiene los datos que se refieren específicamente a la aparición del evento.
module_guid package_guid object_name file_name file_offset Event-Data-As-XML
----------- ------------ ----------- --------- ----------- -----------------
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_begin c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5120 <event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T03:30:14.023Z"><data name="database_id"><value>5</value></data><action name="session_id" package="sqlserver"><value>60</value></action><action name="database_id" package="sqlserver"><value>5</value></action></event>
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_end c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5120 <event name="checkpoint_end" package="sqlserver" timestamp="2016-07-09T03:30:14.025Z"><data name="database_id"><value>5</value></data></event>
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_begin c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5632 <event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T03:30:17.704Z"><data name="database_id"><value>5</value></data><action name="session_id" package="sqlserver"><value>60</value></action><action name="database_id" package="sqlserver"><value>5</value></action></event>
D5149520-6282-11DE-8A39-0800200C9A66 03FDA7D0-91BA-45F8-9875-8B6DD0B8E9F2 checkpoint_end c:\temp\\Checkpoint_Begins_ES_20160615bb-_0_131125086091700000.xel 5632 <event name="checkpoint_end" package="sqlserver" timestamp="2016-07-09T03:30:17.709Z"><data name="database_id"><value>5</value></data></event>
Salida, una celda XML
Aquí se muestra el contenido de la primera celda XML del conjunto de filas devuelto anteriormente.
<event name="checkpoint_begin" package="sqlserver" timestamp="2016-07-09T03:30:14.023Z">
<data name="database_id">
<value>5</value>
</data>
<action name="session_id" package="sqlserver">
<value>60</value>
</action>
<action name="database_id" package="sqlserver">
<value>5</value>
</action>
</event>