Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Este artigo explica os dois conjuntos de visões do sistema relacionados a Eventos Estendidos. O artigo ilustra:
- Como
JOINvárias visualizações do sistema. - Como tipos
SELECTespecíficos de informações a partir das visualizações do sistema.
Há dois conjuntos de exibições do sistema para Eventos Estendidos:
Visualizações do catálogo
- Essas exibições armazenam informações sobre a definição de cada sessão de evento criada por CREATE EVENT SESSION (Transact-SQL). Mas essas visões não sabem nada sobre se alguma sessão já começou a ser executada.
- Por exemplo, se o Pesquisador de Objetos do SSMS mostrar que nenhuma sessão de evento está definida, a seleção da visualização
sys.server_event_session_targetsretornará zero linhas.
- Por exemplo, se o Pesquisador de Objetos do SSMS mostrar que nenhuma sessão de evento está definida, a seleção da visualização
- A maioria dos exemplos é escrita para o SQL Server e a Instância Gerenciada SQL do Azure. Mas com pequenas edições, eles seriam executados no Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric alterando o
serverno nome do DMV paradatabase:-
sys.server_event_session*é o prefixo do nome no SQL Server e na Instância Gerenciada SQL do Azure. -
sys.database_event_session*é o prefixo de nome no Banco de Dados SQL do Azure e no Banco de Dados SQL na Malha. - Para obter mais informações sobre cada um deles, consulte Exibições estendidas do catálogo de eventos.
-
Visualizações de gerenciamento dinâmico (DMVs)
Armazene informações sobre a atividade atual de execução de sessões de eventos. Mas esses DMVs sabem pouco sobre a definição das sessões.
- Mesmo que todas as sessões de eventos estejam atualmente paradas, uma visualização
SELECTdesys.dm_xe_packagesainda retornará linhas porque vários pacotes são carregados na memória ativa no arranque de um servidor. - Pelo mesmo motivo,
sys.dm_xe_objectsesys.dm_xe_object_columnsainda devolvem linhas.
- Mesmo que todas as sessões de eventos estejam atualmente paradas, uma visualização
O prefixo do nome para DMVs de Eventos Estendidos é:
-
sys.dm_xe_*é o prefixo do nome no SQL Server e na Instância Gerenciada SQL do Azure. -
sys.dm_xe_database_*geralmente é o prefixo do nome nas bases de dados SQL do Azure e no Fabric.
-
Permissions
Para SELECT nas visualizações do sistema, a seguinte permissão é necessária:
- O SQL Server 2019 (15.x) e versões anteriores exigem
VIEW SERVER STATEpermissão no servidor. - O SQL Server 2022 (16.x) e versões posteriores exigem
VIEW SERVER PERFORMANCE STATEpermissão no servidor. - O Banco de Dados SQL do Azure e o Banco de Dados SQL no Fabric exigem
VIEW DATABASE PERFORMANCE STATEpermissão no banco de dados.
Visualizações do catálogo
Para os fins desta página, crie uma sessão de Eventos Estendidos com o SSMS ou com o T-SQL. Instale a versão mais recente do SQL Server Management Studio (SSMS).
Criar sessão no SQL Server Management Studio (SSMS)
No SSMS, em seu Pesquisador de Objetos, você pode iniciar a caixa de diálogo Nova Sessão expandindo Gerenciamento>Eventos Estendidos e depois clicando com o botão direito do mouse em Sessões>Nova Sessão.
Na grande caixa de diálogo Nova sessão, na sua primeira seção intitulada Geral, vemos que a opção foi selecionada para Iniciar a sessão de evento na inicialização do servidor.
Em seguida, na seção Eventos , vemos que o lock_deadlock evento foi escolhido. Para esse evento, verificamos que foram selecionadas três Ações . Isso significa que o botão Configurar foi selecionado, que fica cinza depois de ser selecionado.
Em seguida, ainda na seção Configurar Eventos>, vemos que resource_type foi definido como .PAGE Isso significa que os dados do evento não serão enviados do mecanismo de eventos para o destino se o valor resource_type for diferente de PAGE.
Vemos filtros de predicados adicionais para o nome do banco de dados e para um contador.
Em seguida, na seção Armazenamento de dados , vemos o event_file foi escolhido como destino. Além disso, vemos que a opção Ativar rotação de ficheiros foi selecionada.
Finalmente, na seção Avançado , vemos que o valor de latência máxima de despacho foi reduzido para 4 segundos.
Criar sessão de evento em T-SQL
Independentemente de como uma definição de sessão de evento é criada, a partir do SSMS a sessão pode ser revertida em um script Transact-SQL perfeitamente correspondente. Você pode examinar as capturas de tela de Nova Sessão anteriores e comparar suas especificações visíveis com as cláusulas no seguinte script T-SQL CREATE EVENT SESSION gerado.
Para fazer engenharia reversa de uma sessão de evento, no Pesquisador de Objetos , você pode clicar com o botão direito do mouse no nó da sessão e escolher Sessão de Script como>CREATE para** >Área de Transferência.
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
);
Visualização do catálogo SELECT JOIN UNION
A instrução T-SQL SELECT a seguir é longa apenas porque une várias pequenas instruções SELECT. Qualquer um dos pequenos SELECTs pode ser executado por conta própria. Os pequenos comandos SELECT mostram como as várias vistas de catálogo do sistema devem ser unidas.
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]
;
Resultado
A tabela a seguir mostra a saída da execução do SELECT JOIN UNION anterior. Os nomes e valores dos parâmetros de saída correspondem ao que é facilmente visível na instrução anterior CREATE EVENT SESSION.
| Nome-da-Sessão | Tipo de Cláusula | Nome do Parâmetro | Parâmetro-Valor |
|---|---|---|---|
event_session_test3 |
1_EVENT | Nome do Evento | bloqueio_impasse |
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 [pacote0].[contador]<=(16)) |
(Not_Applicable) |
event_session_test3 |
5_TARGET | event_file | (Not_Applicable) |
event_session_test3 |
6_TARGET_SET | filename | c:\temp\event_session_test3_EF.xel |
event_session_test3 |
6_TARGET_SET | tamanho_máximo_do_ficheiro | 20 |
event_session_test3 |
6_TARGET_SET | máximo_ficheiros_de_rotação | 2 |
event_session_test3 |
7_WITH_MAX_MEMORY | memória_máxima | 4096 |
event_session_test3 |
7_WITH_STARTUP_STATE | estado_inicial | 1 |
Isso completa a seção sobre visualizações de catálogo.
Visualizações de gerenciamento dinâmico (DMVs)
Esta seção fornece várias declarações Transact-SQL SELECT que servem a um propósito comercial útil específico. Além disso, os SELECTs demonstram como podes JOIN os DMVs juntos para quaisquer novos usos que desejares.
A documentação de referência dos DMVs está disponível em Extended Events Dynamic Management Views
Todos os objetos que você pode usar na área de eventos estendidos vêm de pacotes que são carregados no sistema. Esta seção lista todos os pacotes e suas descrições.
SELECT --C.1
p.name AS [Package],
p.description AS [Package-Description]
FROM
sys.dm_xe_packages AS p
ORDER BY
p.name;
Resultado
Aqui está a lista de pacotes.
| Package | Descrição do Pacote |
|---|---|
filestream |
Eventos estendidos para SQL Server FILESTREAM e FileTable |
package0 |
Pacote padrão. Contém todos os tipos padrão, mapas, operadores de comparação, ações e alvos |
qds |
Eventos estendidos para o Repositório de Consultas |
SecAudit |
Eventos de auditoria de segurança |
sqlclr |
Eventos estendidos para SQL CLR |
sqlos |
Eventos estendidos para o sistema operacional SQL |
SQLSatellite |
Eventos estendidos para os Serviços de Aprendizado de Máquina do SQL Server |
sqlserver |
Eventos estendidos para o Microsoft SQL Server |
sqlsni |
Eventos estendidos para o Microsoft SQL Server |
ucs |
Eventos estendidos para Unified Communications Stack |
XtpCompile |
Eventos estendidos para a compilação XTP |
XtpEngine |
Eventos avançados para o mecanismo XTP |
XtpRuntime |
Eventos estendidos para o XTP Runtime |
Definições das iniciais anteriores:
-
clr= Ambiente de Execução Comum do .NET -
qds= Armazenamento de dados de consulta -
sni= Interface de rede do servidor -
ucs= Pilha de comunicações unificadas -
xtp= Processamento extremo de transações
SELECIONAR todos os itens disponíveis classificados por tipo
O seguinte SELECT retorna uma linha 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 dados disponíveis para o seu evento
O seguinte SELECT retorna todos os campos de dados que são específicos para o seu tipo de evento.
- Observe o item da cláusula
WHERE:column_type = 'data'. - Além disso, precisarias editar o valor da cláusula
WHEREparao.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];
Resultado
As seguintes linhas foram retornadas pelo anterior SELECT, WHERE o.name = 'lock_deadlock':
- Cada linha representa um filtro opcional para o
sqlserver.lock_deadlockevento. - A
Column-Descriptioncoluna é omitida da exibição a seguir. O seu valor é muitas vezesNULL. - Esta é a saída real, exceto para a coluna Descrição omitida, que geralmente é
NULL. - Estas linhas são
WHERE object_type = 'lock_deadlock'.
| Package | Event | Coluna-para-Dados-de-Predicado |
|---|---|---|
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 e campos de eventos
O seguinte SELECT inclui um JOIN para a sys.dm_xe_map_values vista.
O objetivo de exibir o SELECT são os vários campos que pode escolher para a sua sessão de evento. Os campos de evento podem ser usados de duas maneiras:
- Para escolher quais valores de campo serão gravados no seu destino para cada ocorrência de evento.
- Para filtrar quais ocorrências de eventos serão enviadas ao seu destino ou mantidas.
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];
Resultado
A seguir, apresenta-se uma amostra das 100+ linhas reais de saída do T-SQL SELECT anterior. A linha para resource_type é relevante para a filtragem de predicados usada no exemplo event_session_test3 em outra parte deste artigo.
/*** 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 os alvos
O seguinte SELECT retorna todos os parâmetros para o seu alvo. Cada parâmetro é marcado para indicar se é obrigatório. Os valores atribuídos aos parâmetros afetam o comportamento do destino.
- Observe o item da cláusula
WHERE:object_type = 'customizable'. - Além disso, precisarias editar o valor da cláusula
WHEREparao.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];
Resultado
As seguintes linhas de parâmetros são um pequeno subconjunto daqueles retornados pelo precedente 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 convertendo a coluna target_data para XML
Isso DMV SELECT retorna linhas de dados do destino da sessão de evento ativa. Os dados são convertidos em XML, o que torna sua célula retornada selecionável para fácil exibição no SSMS.
- Se a sessão do evento for terminada, isto
SELECTretornará zero linhas. - Você precisaria editar o valor da 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!>';
Saída, a única linha, incluindo a célula XML
Aqui está a única linha resultante do anterior SELECT. A coluna XML-Cast contém uma cadeia de caracteres XML que o SSMS entende ser XML. Por conseguinte, o SSMS entende que deve tornar a célula XML-Cast selecionável.
Para esta execução:
- O valor
s.name =foi definido numa sessão de evento para o eventocheckpoint_begin. - O alvo era um 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>
Saída, XML formatado de forma legível quando a célula é selecionada
Quando a célula XML-Cast é selecionada, a seguinte exibição bonita é exibida.
<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>
Usar SELECT numa função para recuperar dados de event_file do disco rígido
Suponha que sua sessão de evento tenha reunido alguns dados e posteriormente tenha sido interrompida. Se sua sessão foi definida para usar o destino event_file, você ainda pode recuperar os dados chamando a função sys.fn_xe_target_read_file.
- Você deve editar seu caminho e nome de arquivo no parâmetro da chamada de função, antes de executar este
SELECT.- Não preste atenção aos dígitos adicionais que o sistema SQL insere nos nomes reais dos arquivos .XEL cada vez que reinicia a sua sessão. Basta fornecer o nome base normal e a extensão.
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;
Saída, linhas retornadas pelo SELECT da função
Em seguida, estão as linhas retornadas pela função anterior SELECT FROM . A Event-Data-As-XML coluna XML contém os dados que são especificamente sobre a ocorrência do 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>
Saída, uma célula XML
Aqui está o conteúdo da primeira célula XML, do conjunto de linhas retornado anterior.
<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>