Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Azure SQL Database
Azure SQL Istanza gestita
Database SQL in Microsoft Fabric
Questo articolo illustra i due set di viste di sistema correlate agli eventi estesi. L'articolo illustra:
- Come visualizzare
JOINdiverse visualizzazioni di sistema. - Come ottenere
SELECTtipi particolari di informazioni dalle visualizzazioni di sistema.
Per gli Eventi estesi sono disponibili due set di viste di sistema:
Viste del catalogo
- Queste viste archiviano informazioni sulla definizione di ogni sessione evento creata da CREATE EVENT SESSION (Transact-SQL). Queste viste, però, non hanno informazioni su eventuali sessioni in esecuzione.
- Ad esempio, se l'Object Explorer di SSMS non mostra alcuna sessione evento definita, una SELECT dalla vista
sys.server_event_session_targetsrestituirebbe zero righe.
- Ad esempio, se l'Object Explorer di SSMS non mostra alcuna sessione evento definita, una SELECT dalla vista
- La maggior parte degli esempi è scritta per SQL Server e Istanza gestita di SQL di Azure. Con alcune modifiche minori, potrebbero essere eseguite nel database SQL di Azure e nel database SQL in Fabric modificando
serverindatabasenel nome DMV.-
sys.server_event_session*è il prefisso del nome in SQL Server e Istanza gestita di SQL di Azure. -
sys.database_event_session*è il prefisso del nome nel database SQL di Azure e nel database SQL in Fabric. - Per ulteriori informazioni su ciascuna, vedere Viste del catalogo degli eventi estesi.
-
DMV (Dynamic Management View)
Archiviano informazioni relative all' attività corrente di sessioni evento in esecuzione. Queste DMV, tuttavia, hanno poche informazioni sulla definizione delle sessioni.
- Anche se tutte le sessioni eventi sono attualmente arrestate, un oggetto
SELECTdalla visualizzazionesys.dm_xe_packagesrestituisce ancora righe perché diversi pacchetti vengono caricati nella memoria attiva all'avvio del server. - Per lo stesso motivo
sys.dm_xe_objectsesys.dm_xe_object_columnsrestituiscono comunque righe.
- Anche se tutte le sessioni eventi sono attualmente arrestate, un oggetto
Il prefisso nome per DMV di Eventi estesi è:
-
sys.dm_xe_*è il prefisso del nome in SQL Server e Istanza gestita di SQL di Azure. -
sys.dm_xe_database_*è in genere il prefisso del nome nel database SQL di Azure e nel database SQL in Fabric.
-
Permissions
Per accedere alle viste di sistema, è necessaria l'autorizzazione seguente:
- SQL Server 2019 (15.x) e le versioni precedenti richiedono
VIEW SERVER STATEl'autorizzazione per il server. - SQL Server 2022 (16.x) e versioni successive richiedono
VIEW SERVER PERFORMANCE STATEl'autorizzazione per il server. - Il database SQL di Azure e il database SQL in Fabric richiedono
VIEW DATABASE PERFORMANCE STATEl'autorizzazione nel database.
Viste del catalogo
Ai fini di questa pagina, creare una sessione eventi estesi con SSMS o con T-SQL. Installare la versione più recente di SQL Server Management Studio (SSMS).
Creare una sessione in SQL Server Management Studio (SSMS)
In SSMS, in Esplora oggetti, è possibile avviare la finestra di dialogo Nuova sessione espandendoEventi estesi di >, quindi fare clic con il pulsante destro del mouse su Sessioni>nuova sessione.
Nella finestra di dialogo Nuova sessione , nella prima sezione, Generale, è selezionata l'opzione Avviare la sessione eventi all'avvio del server.
Nella sezione Eventi si vedrà che l'evento lock_deadlock è stato scelto. Per questo evento sono state selezionate tre Azioni . Ciò significa che è stato selezionato il pulsante Configura , che diventa grigio dopo essere stato selezionato.
Successivamente, nella sezione Configurazione eventi> si noterà che resource_type è stato impostato su .PAGE Ciò significa che i dati dell'evento non verranno inviati dal motore di eventi alla destinazione se il valore resource_type è diverso da PAGE.
È anche possibile vedere altri predicati di filtri per il nome del database e per un contatore.
Quindi, nella sezione Archiviazione dati è possibile vedere che event_file è stato scelto come destinazione. È anche possibile vedere che è stata selezionata l'opzione Consenti rollover dei file.
> Data Storage, eventfile_enablefileroleover.
Infine, nella sezione Avanzate è possibile vedere che il valore Latenza di recapito massima è stato ridotto a 4 secondi.
Creare una sessione eventi in T-SQL
Indipendentemente dalla modalità di creazione di una definizione di sessione eventi, la sessione da SSMS può essere convertita per essere uno script di Transact-SQL perfettamente corrispondente. È possibile esaminare gli screenshot della nuova sessione precedenti e confrontare le specifiche visibili con le clausole nello script T-SQL CREATE EVENT SESSION generato seguente.
Per invertire la progettazione di una sessione eventi, in Esplora oggetti è possibile fare clic con il pulsante destro del mouse sul nodo della sessione e quindi scegliere Script Session as to** Clipboard (>CREATE>** Appunti).
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 Catalogo SELECT JOIN UNION
L'istruzione T-SQL SELECT seguente è lunga solo perché unisce diverse piccole istruzioni SELECT con UNION. Ognuna delle istruzioni SELECT più brevi può essere eseguita separatamente. Le istruzioni SELECT più brevi illustrano come devono essere unite tramite JOIN le diverse viste del catalogo di 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
Nella tabella seguente viene mostrato l'output dell'esecuzione del SELECT JOIN UNION precedente. I nomi e i valori dei parametri di output corrispondono a ciò che è chiaramente visibile nell'istruzione precedente 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].[contatore]<=(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 |
E questo è tutto per quanto riguarda la sezione sulle viste del catalogo.
DMV (Dynamic Management View)
In questa sezione vengono fornite diverse istruzioni Transact-SQL SELECT che offrono uno scopo aziendale specifico. Inoltre, i SELEC dimostrano come è possibile JOIN usare insieme le DMV per qualsiasi nuovo uso desiderato.
La documentazione di riferimento delle DMV è disponibile in Viste a gestione dinamica degli eventi estesi
Tutti gli oggetti che è possibile usare nell'area degli eventi estesi provengono da pacchetti caricati nel sistema. In questa sezione sono elencati tutti i pacchetti e le relative descrizioni.
SELECT --C.1
p.name AS [Package],
p.description AS [Package-Description]
FROM
sys.dm_xe_packages AS p
ORDER BY
p.name;
Output
Ecco l'elenco dei pacchetti.
| Pacchetto | Package-Description |
|---|---|
filestream |
Eventi estesi per FILESTREAM e FileTable di SQL Server |
package0 |
Pacchetto predefinito. Contiene tutti i tipi, le mappe, gli operatori di confronto, le azioni e le destinazioni standard |
qds |
Eventi estesi per Query Store |
SecAudit |
Eventi del controllo di sicurezza |
sqlclr |
Eventi estesi per SQL CLR |
sqlos |
Eventi estesi per il sistema operativo SQL |
SQLSatellite |
Eventi estesi per Servizi di Machine Learning per SQL Server |
sqlserver |
Eventi estesi per Microsoft SQL Server |
sqlsni |
Eventi estesi per Microsoft SQL Server |
ucs |
Eventi estesi per lo stack delle comunicazioni unificate |
XtpCompile |
Eventi estesi per la compilazione XTP |
XtpEngine |
Eventi estesi per il motore XTP |
XtpRuntime |
Eventi estesi per il runtime XTP |
Definizioni degli acronimi riportati qui sopra:
-
clr= Common Language Runtime (Runtime del linguaggio comune) di .NET -
qds= Archivio dati delle query -
sni= Interfaccia di rete server -
ucs= Stack di comunicazioni unificate -
xtp= Elaborazione transazionale estrema
SELECT tutti gli elementi disponibili ordinati per tipo
Di seguito SELECT viene restituita una riga per ogni oggetto .
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];
Campi dati disponibili per l'evento
Di seguito SELECT vengono restituiti tutti i campi dati specifici per il tipo di evento.
- Si noti l'elemento della clausola
WHERE:column_type = 'data'. - Inoltre, è necessario modificare il valore della
WHEREclausola pero.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
Le righe seguenti sono state restituite dai precedenti SELECT, WHERE o.name = 'lock_deadlock'.
- Ogni riga rappresenta un filtro facoltativo per l'evento
sqlserver.lock_deadlock. - La
Column-Descriptioncolonna viene omessa dalla visualizzazione seguente. Il valore è spessoNULL. - Si tratta di un output effettivo, ad eccezione della colonna Description omessa, che è spesso
NULL. - Queste righe sono
WHERE object_type = 'lock_deadlock'.
| Pacchetto | Event | 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 e i campi evento
Di seguito SELECT include un collegamento JOIN alla vista sys.dm_xe_map_values.
Lo scopo della visualizzazione SELECT è mostrare i numerosi campi tra cui è possibile scegliere per la sessione di eventi. I campi evento possono essere usati in due modi:
- Per scegliere quali valori dei campi verranno scritti nella destinazione per ogni occorrenza dell'evento.
- Per filtrare le occorrenze dell'evento da inviare e quelle da non inviare alla destinazione.
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
Di seguito è riportato un campionamento delle effettive 100+ righe di output dell'oggetto T-SQL SELECT precedente. La riga per resource_type è rilevante per il filtro del predicato usato nell'esempio event_session_test3 altrove in questo articolo.
/*** 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.
***/
Parametri per le destinazioni
Di seguito SELECT riporta ogni parametro per il tuo obiettivo. Ogni parametro è contrassegnato come obbligatorio o meno. I valori assegnati ai parametri influiscono sul comportamento della destinazione.
- Si noti l'elemento della clausola
WHERE:object_type = 'customizable'. - Inoltre, è necessario modificare il valore della
WHEREclausola pero.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
Le righe di parametri seguenti sono un piccolo subset di quelli restituiti dall'oggetto 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
***/
CAST DMV SELECT target_data colonna in XML
In questo modo DMV SELECT vengono restituite righe di dati dalla destinazione della sessione eventi attiva. Il cast dei dati viene eseguito su XML, che rende la cella restituita selezionabile per semplificare la visualizzazione in SSMS.
- Se la sessione eventi viene arrestata, saranno restituite zero righe.
- È necessario modificare il valore della
WHEREclausola pers.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!>';
Output: l'unica riga, inclusa la cella XML
Ecco l'unica riga restituita dall'oggetto precedente SELECT. La colonna XML-Cast contiene una stringa xml che SSMS riconosce è XML. Di conseguenza, SSMS riconosce che deve rendere selezionabile la XML-Cast cella.
Per questa esecuzione:
- Il valore
s.name =è stato impostato su una sessione eventi per l'eventocheckpoint_begin. - La destinazione era un 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>
Output, XML formattato in modo ordinato quando la cella viene selezionata
Quando viene selezionata la cella XML-Cast, viene visualizzata la visualizzazione seguente.
<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 da una funzione per recuperare i dati event_file dall'unità disco
Si supponga che la sessione evento abbia raccolto alcuni dati e in seguito sia stata arrestata. Se la sessione è stata definita per usare la destinazione event_file, è comunque possibile recuperare i dati chiamando la funzione sys.fn_xe_target_read_file.
- Prima di eseguire
SELECTquesta operazione, è necessario modificare il percorso e il nome del file nel parametro della chiamata di funzione.- Non è necessario prestare attenzione alle cifre aggiuntive che il sistema SQL incorpora nei nomi file con estensione XEL effettivi ogni volta che si riavvia la sessione. È sufficiente specificare il nome radice e l'estensione normali.
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;
Output: righe restituite dalla funzione SELECT FROM
Di seguito sono riportate le righe restituite dalla funzione precedente SELECT FROM . La Event-Data-As-XML colonna XML contiene i dati specifici relativi all'occorrenza dell'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>
Output: una cella di XML
Di seguito è riportato il contenuto della prima cella di XML, dal set di righe restituito in precedenza.
<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>