Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
Este artigo explica os dois conjuntos de exibições do sistema relacionados a Eventos Estendidos. O artigo ilustra:
- Como visualizar
JOINvárias visualizações do sistema. - Como especificar
SELECTtipos de informações dos modos de exibição do sistema.
Há dois conjuntos de exibições do sistema para eventos estendidos:
Exibiçõ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 exibições não sabem nada sobre se alguma das sessões já começou a ser executada.
- Por exemplo, se o Pesquisador de Objetos do SSMS não mostrar sessões de evento definidas, fazer um SELECT na visão
sys.server_event_session_targetsretornará zero linhas.
- Por exemplo, se o Pesquisador de Objetos do SSMS não mostrar sessões de evento definidas, fazer um SELECT na visão
- A maioria dos exemplos são gravados para o SQL Server e a Instância Gerenciada de SQL do Azure. No entanto, com pequenas edições, eles seriam executados no Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric, alterando o nome da DMV de
serverparadatabase.-
sys.server_event_session*é o prefixo de nome no SQL Server e na Instância Gerenciada de SQL do Azure. -
sys.database_event_session*é o prefixo de nome no Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric. - Para obter mais informações sobre cada um, consulte Visualizações do Catálogo de Eventos Estendidos.
-
DMVs (exibições de gerenciamento dinâmico)
Armazenam informações sobre a atividade atual das sessões de evento em execução. Mas esses DMVs sabem muito sobre a definição das sessões.
- Mesmo que todas as sessões de evento estejam interrompidas no momento, uma
SELECTdo modo de exibiçãosys.dm_xe_packagesainda retornará linhas porque vários pacotes são carregados na memória ativa quando o servidor é iniciado. - Pelo mesmo motivo,
sys.dm_xe_objectsesys.dm_xe_object_columnsainda retornam linhas.
- Mesmo que todas as sessões de evento estejam interrompidas no momento, uma
O prefixo do nome para DMVs de eventos estendidos é:
-
sys.dm_xe_*é o prefixo de nome no SQL Server e na Instância Gerenciada de SQL do Azure. -
sys.dm_xe_database_*geralmente é o prefixo de nome no Banco de Dados SQL do Azure e no Banco de Dados SQL no Fabric.
-
Permissions
Para SELECT visualizar as exibiçõ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.
Exibições do catálogo
Para fins desta página, crie uma sessão de Eventos Estendidos com SSMS ou com T-SQL. Instale a versão mais recente do SSMS (SQL Server Management Studio).
Criar sessão no SSMS (SQL Server Management Studio)
No SSMS, no Explorador de Objetos, você pode iniciar a caixa de diálogo Nova Sessão expandindo Gerenciamento>Eventos Estendidos, e, em seguida, clicar com o botão direito do mouse em Sessões>Nova Sessão.
Na caixa de diálogo grande Nova Sessão , em sua primeira seção chamada 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, vemos que três Ações foram selecionadas. Isso significa que o botão Configurar foi selecionado, que fica cinza após ser selecionado.
Em seguida, ainda na seçãoConfiguração de >, vemos que resource_type foi definido como PAGE. Isso significa que os dados do evento não serão enviados do mecanismo de evento para o destino se o valor de resource_type for qualquer coisa diferente de PAGE.
Vemos filtros de predicado adicionais para o nome do banco de dados e para um contador.
Em seguida, na seção Armazenamento de Dados, vemos que event_file foi selecionado como destino. Além disso, vemos que a opção Habilitar substituição de arquivo foi selecionada.
Por fim, na seção Avançado, vemos que o valor de Latência Máxima de Expedição foi reduzido para 4 segundos.
> Advanced, Maximum dispatch latency.
Criar sessão de evento no T-SQL
Independentemente de como uma definição de sessão de evento seja criada, do SSMS, a sessão pode ser engenheirada inversamente para um script de Transact-SQL perfeitamente correspondente. Você pode examinar as capturas de tela anteriores da Nova Sessão e comparar suas especificações visíveis com as cláusulas no script T-SQL CREATE EVENT SESSION gerado a seguir.
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, em seguida, escolher Scriptar Sessão como>CREATE para >.
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
);
Exibição de catálogo SELECT JOIN UNION
A instrução T-SQL SELECT a seguir é longa apenas porque faz UNION de várias pequenas instruções SELECT. Qualquer um dos SELECTs pequenos pode ser executado sozinho. Os pequenos SELECT mostram como as várias exibições de catalogação do sistema devem ser unidas, utilizando JOIN.
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]
;
Saída
A tabela a seguir mostra a saída da execução do componente anterior SELECT JOIN UNION. Os valores e os nomes de parâmetro de saída correspondem ao que é claramente visível na declaração CREATE EVENT SESSION anterior.
| 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].[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 | 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 |
Isso conclui a seção sobre exibições do catálogo.
DMVs (exibições de gerenciamento dinâmico)
Esta seção fornece várias instruções Transact-SQL SELECT que atendem a uma finalidade comercial útil específica. Além disso, as SELECTs demonstram como você pode JOIN unir as DMVs para quaisquer novos usos que você desejar.
A documentação de referência dos DMVs está disponível em Exibições de Gerenciamento Dinâmico de Eventos Estendidos
Todos os objetos que você pode usar na área de eventos estendidos são provenientes 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;
Saída
Aqui está a lista de pacotes.
| Pacote | Package-Description |
|---|---|
filestream |
Eventos estendidos para SQL Server FILESTREAM e FileTable |
package0 |
Pacote padrão. Contém todos os tipos, mapas, operadores de comparação, ações e destinos padrão |
qds |
Eventos estendidos para 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 Machine Learning do SQL Server |
sqlserver |
Eventos estendidos para o Microsoft SQL Server |
sqlsni |
Eventos estendidos para o Microsoft SQL Server |
ucs |
Eventos estendidos para Pilha de Comunicações Unificadas |
XtpCompile |
Eventos estendidos para a Compilação XTP |
XtpEngine |
Eventos estendidos para o mecanismo XTP |
XtpRuntime |
Eventos estendidos para o Runtime XTP |
Definições dos inicialismos anteriores:
-
clr= Ambiente de Execução Comum do .NET -
qds= Repositório de dados de consulta -
sni= Interface de Rede do Servidor -
ucs= Pilha de Comunicações Unificadas -
xtp= Processamento extremo de transações
SELECIONe 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 evento
O seguinte SELECT retorna todos os campos de dados que são específicos ao seu tipo de evento.
- Observe o item
WHEREda cláusula:column_type = 'data'. - Além disso, você precisaria 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];
Saída
As seguintes linhas foram retornadas pelos elementos anteriores 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. Seu valor é frequentementeNULL. - Esta é a saída real, exceto pela coluna de descrição, que geralmente está
NULL. - Essas linhas são
WHERE object_type = 'lock_deadlock'.
| Pacote | 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 |
campos de sys.dm_xe_map_values e eventos
O seguinte SELECT inclui um JOIN na visualização de sys.dm_xe_map_values.
A finalidade de SELECT mostrar os vários campos que você pode escolher para sua sessão de evento. Os campos de evento podem ser usados de duas maneiras:
- Para escolher quais valores de campo serão gravados em seu destino para cada ocorrência de evento.
- Para filtrar quais ocorrências do evento serão enviadas para versus mantidas fora de seu destino.
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];
Saída
Em seguida, há uma amostragem das mais de 100 linhas reais de saída do T-SQL anterior SELECT. A linha resource_type é relevante para a filtragem de predicado usada no exemplo event_session_test3 mencionado em outro lugar neste 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 alvos
O seguinte SELECT retorna todos os parâmetros para seu alvo. Cada parâmetro está marcado para indicar se é obrigatório. Os valores que você atribui a parâmetros afetam o comportamento do destino.
- Observe o item
WHEREda cláusula:object_type = 'customizable'. - Além disso, você precisaria 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];
Saída
As linhas de parâmetros a seguir são um pequeno subconjunto daqueles retornados pelo 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 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 exibição fácil no SSMS.
- Se a sessão de evento for interrompida, este
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 sua célula XML
Aqui está a única linha produzida pelo resultado do anterior SELECT. A coluna XML-Cast contém uma cadeia de caracteres de XML que o SSMS entende ser XML. Portanto, o SSMS entende que deve tornar a XML-Cast célula selecionável.
Para esta execução:
- O valor
s.name =foi definido para uma sessão do eventocheckpoint_begin. - O destino 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 exibido de forma legível quando a célula é selecionada
Quando a célula XML-Cast é selecionada, a exibição bonita a seguir é 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 em uma função para recuperar dados do event_file da unidade de disco
Suponha que sua sessão de eventos coletou alguns dados e foi parada posteriormente. Se a sessão tiver sido definida para usar o destino event_file, você ainda poderá recuperar os dados chamando a função sys.fn_xe_target_read_file.
- Você deve editar o caminho e o nome do arquivo no parâmetro da chamada de função, antes de executá-lo
SELECT.- Não dê atenção aos dígitos extra que o sistema SQL integra nos nomes de arquivo .XEL reais sempre que você reinicia a sessão. Apenas dê o nome raiz e a extensão normais.
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 FROM 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 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>