Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
In dit artikel worden de twee sets systeemweergaven uitgelegd die betrekking hebben op uitgebreide gebeurtenissen. Het artikel illustreert:
- 
              
JOINVerschillende systeemweergaven. - 
              
SELECTSpecifieke soorten informatie uit de systeemweergaven. 
Er zijn twee sets systeemweergaven voor uitgebreide gebeurtenissen:
Catalogusweergaven
- In deze weergaven wordt informatie opgeslagen over de definitie van elke gebeurtenissessie die is gemaakt door CREATE EVENT SESSION (Transact-SQL). Maar deze weergaven weten niets over of er ooit sessies zijn gestart.
- Als in de SSMS-objectverkenner bijvoorbeeld geen gebeurtenissessies worden gedefinieerd, retourneert SELECTing vanuit de weergave 
sys.server_event_session_targetsnul rijen. 
 - Als in de SSMS-objectverkenner bijvoorbeeld geen gebeurtenissessies worden gedefinieerd, retourneert SELECTing vanuit de weergave 
 - De meeste voorbeelden zijn geschreven voor SQL Server en Azure SQL Managed Instance. Maar door kleine bewerkingen zouden ze werken in Azure SQL Database en SQL Database in Fabric door de 
serverin de naam van de DMV te wijzigen indatabase.- 
              
sys.server_event_session*is het naamvoorvoegsel in SQL Server en Azure SQL Managed Instance. - 
              
sys.database_event_session*is het naamvoorvoegsel in Azure SQL Database en SQL Database in Fabric. - Zie De uitgebreide weergaven van de gebeurteniscatalogus voor meer informatie.
 
 - 
              
 
Dynamische beheerweergaven (DMVs)
Sla informatie op over de huidige activiteit van actieve gebeurtenissessies. Maar deze DMV's weten weinig over de definitie van sessies.
- Zelfs als alle gebeurtenissessies momenteel zijn gestopt, retourneert een 
SELECTvanuit de weergavesys.dm_xe_packagesnog steeds rijen, omdat bij het starten van de server verschillende pakketten in het actieve geheugen worden geladen. - Om dezelfde reden 
sys.dm_xe_objectsensys.dm_xe_object_columnsnog steeds rijen retourneren. 
- Zelfs als alle gebeurtenissessies momenteel zijn gestopt, retourneert een 
 Naamvoorvoegsel voor DMVs voor uitgebreide gebeurtenissen is:
- 
              
sys.dm_xe_*is het naamvoorvoegsel in SQL Server en Azure SQL Managed Instance. - 
              
sys.dm_xe_database_*is over het algemeen het naamvoorvoegsel in Azure SQL Database en SQL Database in Fabric. 
- 
              
 
Permissions
Om vanuit SELECT de systeemweergaven te werken, is de volgende machtiging nodig:
- SQL Server 2019 (15.x) en eerdere versies vereisen 
VIEW SERVER STATEmachtigingen op de server. - VOOR SQL Server 2022 (16.x) en latere versies is machtiging vereist 
VIEW SERVER PERFORMANCE STATEop de server. - Voor Azure SQL Database en SQL Database in Fabric zijn machtigingen in de database vereist 
VIEW DATABASE PERFORMANCE STATE. 
Catalogusweergaven
Voor deze pagina maakt u een uitgebreide gebeurtenissensessie met SSMS of met T-SQL. Gebruik altijd de nieuwste update van SSMS.
Een sessie maken in SQL Server Management Studio (SSMS)
In SSMS kunt u in objectverkenner het dialoogvenster Nieuwe sessie starten doorUitgebreide beheergebeurtenissen> uit te vouwen en vervolgens met de rechtermuisknop op Sessies>nieuwe sessie te klikken.
In het dialoogvenster Grote Nieuwe sessie , in de eerste sectie met het label Algemeen, zien we dat de optie is geselecteerd om de gebeurtenissessie bij het opstarten van de server te starten.
Vervolgens ziet u in de sectie Gebeurtenissen dat de lock_deadlock gebeurtenis is gekozen. Voor die gebeurtenis zien we dat er drie acties zijn geselecteerd. Dit betekent dat de knop Configureren is geselecteerd, wat grijs wordt nadat deze is geselecteerd.
Vervolgens zien we in de sectie Gebeurtenissen>configureren dat resource_type is ingesteld op PAGE. Dit betekent dat gebeurtenisgegevens niet van de gebeurtenisengine naar het doel worden verzonden als de resource_type waarde niets anders is dan PAGE.
We zien extra predicaatfilters voor de databasenaam en voor een teller.
Vervolgens zien we in de sectie Gegevensopslag dat de event_file als doel is gekozen. Verder zien we dat de optie Bestandsrolover inschakelen is geselecteerd.
Ten slotte zien we in de sectie Geavanceerd dat de waarde voor maximale verzendlatentie is verlaagd tot 4 seconden.
              
              
              
              
            
Gebeurtenissessie maken in T-SQL
Ongeacht hoe een gebeurtenissessiedefinitie wordt gemaakt, kan de sessie vanuit SSMS worden omgekeerd in een perfect overeenkomend Transact-SQL script. U kunt de voorgaande schermopnamen van nieuwe sessies bekijken en de bijbehorende zichtbare specificaties vergelijken met de componenten in het volgende gegenereerde T-SQL-script CREATE EVENT SESSION .
Als u een gebeurtenissessie wilt reverse-engineeren, kunt u in Objectverkenner met de rechtermuisknop op het sessieknooppunt klikken en vervolgens Scriptsessie kiezen voor>CREATE ** >Klembord.
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
    );
Catalogusweergave SELECT JOIN UNION
De volgende T-SQL-instructie SELECT is alleen lang omdat het meerdere kleine SELECTs samenvat als UNION. Elk van de kleine SELECT's kan zelfstandig worden uitgevoerd. De kleine SELECTs laten zien hoe de verschillende systeemcatalogusweergaven samen JOINed moeten zijn.
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]
;
Uitvoer
In de volgende tabel ziet u de uitvoer van het uitvoeren van de voorgaande SELECT JOIN UNION. De namen en waarden van de uitvoerparameter komen overeen met wat duidelijk zichtbaar is in de voorgaande CREATE EVENT SESSION instructie.
| Sessie-Naam | Zinstype | Parameter-Name | Parameter-Waarde | 
|---|---|---|---|
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 [pakket0]. [teller]<=(16)) | 
(Not_Applicable) | 
event_session_test3 | 
5_TARGET | evenement_bestand | (Not_Applicable) | 
event_session_test3 | 
6_TARGET_SET | filename | c:\temp\event_session_test3_EF.xel | 
event_session_test3 | 
6_TARGET_SET | max_bestandsgrootte | 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 | opstarttoestand | 1 | 
Hiermee wordt de sectie over catalogusweergaven voltooid.
Dynamische beheerweergaven (DMV's)
Deze sectie bevat verschillende Transact-SQL SELECT instructies die elk een specifiek nuttig zakelijk doel dienen. Verder laten de SELECTs zien hoe u de DMV's samen kunt JOIN gebruiken voor elk gewenst gebruik.
Referentiedocumentatie van de DMV's is beschikbaar in Extended Events Dynamische Beheeroverzichten
Alle objecten die u kunt gebruiken in het gebied van uitgebreide gebeurtenissen, zijn afkomstig van pakketten die in het systeem worden geladen. In deze sectie worden alle pakketten en de bijbehorende beschrijvingen vermeld.
SELECT  --C.1
        p.name         AS [Package],
        p.description  AS [Package-Description]
    FROM
        sys.dm_xe_packages  AS p
    ORDER BY
        p.name;
Uitvoer
Hier volgt de lijst met pakketten.
| Package | Pakketbeschrijving | 
|---|---|
filestream | 
Uitgebreide gebeurtenissen voor SQL Server FILESTREAM en FileTable | 
package0 | 
Standaardpakket. Bevat alle standaardtypen, kaarten, operators, acties en doelen vergelijken | 
qds | 
Uitgebreide gebeurtenissen voor Query Store | 
SecAudit | 
Beveiligingscontrolegebeurtenissen | 
sqlclr | 
Uitgebreide gebeurtenissen voor SQL CLR | 
sqlos | 
Uitgebreide gebeurtenissen voor SQL-besturingssysteem | 
SQLSatellite | 
Uitgebreide gebeurtenissen voor SQL Server Machine Learning Services | 
sqlserver | 
Uitgebreide gebeurtenissen voor Microsoft SQL Server | 
sqlsni | 
Uitgebreide gebeurtenissen voor Microsoft SQL Server | 
ucs | 
Uitgebreide gebeurtenissen voor Unified Communications Stack | 
XtpCompile | 
Uitgebreide gebeurtenissen voor de XTP Compile | 
XtpEngine | 
Uitgebreide gebeurtenissen voor de XTP Engine | 
XtpRuntime | 
Uitgebreide gebeurtenissen voor de XTP Runtime | 
Definities van de voorgaande initialismen:
- 
              
clr= Common Language Runtime van .NET - 
              
qds= Querygegevensopslag - 
              
sni= Servernetwerkinterface - 
              
ucs= Geïntegreerde Communicatiestack (Unified Communications Stack) - 
              
xtp= Extreme transactieverwerking 
SELECTEER alle beschikbare items gesorteerd op type
Het volgende SELECT retourneert één rij voor elk object.
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];
Gegevensvelden die beschikbaar zijn voor uw gebeurtenis
Hieronder worden SELECT alle gegevensvelden geretourneerd die specifiek zijn voor uw gebeurtenistype.
- Let op het 
WHEREclausule-item:column_type = 'data'. - U moet ook de 
WHEREvoorwaarde aanpassen vooro.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];
Uitvoer
De volgende rijen zijn geretourneerd door de voorgaande SELECT, WHERE o.name = 'lock_deadlock':
- Elke rij vertegenwoordigt een optioneel filter voor de 
sqlserver.lock_deadlockgebeurtenis. - De 
Column-Descriptionkolom wordt weggelaten uit de volgende weergave. De waarde ervan is vaakNULL. - Dit is de werkelijke uitvoer, met uitzondering van de kolom Beschrijving die vaak 
NULLwordt weggelaten. - Deze rijen zijn 
WHERE object_type = 'lock_deadlock'. 
| Package | Event | Kolom-voor-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 en gebeurtenisvelden
              SELECT Hieronder wordt een JOIN toegevoegd aan de sys.dm_xe_map_values weergave.
Het doel van de SELECT is om de vele velden weer te geven waaruit u kunt kiezen voor uw gebeurtenissessie. De gebeurtenisvelden kunnen op twee manieren worden gebruikt:
- Als u wilt kiezen welke veldwaarden naar uw doel worden geschreven voor elke gebeurtenis.
 - Om te filteren welke gebeurtenisvoorkomens naar uw doel worden verzonden of welke van uw doel worden onthouden.
 
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];
Uitvoer
Hierna volgt een steekproef van de werkelijke 100+ rijen met uitvoer van de voorgaande T-SQL SELECT. De rij voor resource_type is relevant voor het predicaatfilter dat in het event_session_test3 voorbeeld elders in dit artikel wordt gebruikt.
/***  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.
***/
Parameters voor doelen
Hieronder worden SELECT alle parameters voor uw doelobject geretourneerd. Elke parameter wordt getagd om aan te geven of deze verplicht is. De waarden die u aan parameters toewijst, zijn van invloed op het gedrag van het doel.
- Let op het 
WHEREclausule-item:object_type = 'customizable'. - U moet ook de 
WHEREclausulewaarde vooro.name =bewerken. 
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];
Uitvoer
De volgende rijen met parameters zijn een kleine subset van de parameters die door de voorgaande SELECTworden geretourneerd.
/***  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 target_data kolom omzetten naar XML
Hiermee DMV SELECT worden de gegevensrijen van het doel van uw actieve gebeurtenissessie geretourneerd. De gegevens worden geconverteerd naar XML, waardoor de geretourneerde cel kan worden geselecteerd voor eenvoudige weergave in SSMS.
- Als uw gebeurtenissessie is gestopt, retourneert dit 
SELECTnul rijen. - U moet de 
WHEREclausulewaarde voors.name =bewerken. 
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!>';
Uitvoer, de enige rij, met inbegrip van de XML-cel
Hier is de enige rij die als uitvoer van de voorgaande SELECT is gegenereerd. De kolom XML-Cast bevat een tekenreeks van XML die door SSMS als XML wordt herkend. Daarom begrijpt SSMS dat de XML-Cast cel kan worden geselecteerd.
Voor deze run:
- De 
s.name =waarde is ingesteld op een gebeurtenissessie voor decheckpoint_begingebeurtenis. - Het doel was een 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>
Uitvoer, XML wordt mooi weergegeven wanneer de cel is geselecteerd
Wanneer de XML-Cast cel is geselecteerd, wordt de volgende mooie weergave weergegeven.
<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 uit een functie om event_file gegevens op te halen van schijfstation
Stel dat uw gebeurtenissessie enkele gegevens heeft verzameld en later is gestopt. Als uw sessie is gedefinieerd voor het gebruik van het event_file doel, kunt u de gegevens nog steeds ophalen door de functie sys.fn_xe_target_read_fileaan te roepen.
- U moet uw pad en bestandsnaam bewerken in de parameter van de functie-aanroep, voordat u dit 
SELECTuitvoert.- Let niet op de extra cijfers die het SQL-systeem insluit in uw werkelijke. XEL-bestandsnamen telkens wanneer u de sessie opnieuw start. Geef gewoon de normale hoofdnaam en extensie op.
 
 
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;
Uitvoer, rijen geretourneerd door de SELECT FROM-opdracht van de functie
Vervolgens worden de rijen geretourneerd door de voorgaande SELECT FROM functie. De Event-Data-As-XML XML-kolom bevat de gegevens die specifiek betrekking hebben op de gebeurtenis.
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>
Uitvoer, één XML-cel
Hier volgt de inhoud van de eerste XML-cel, uit de voorgaande geretourneerde rijenset.
<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>