Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
Den här artikeln förklarar de två uppsättningarna systemvyer som är relaterade till utökade händelser. Artikeln illustrerar:
- Så här gör du för 
JOINolika systemvyer. - Så här gör du för specifika 
SELECTtyper av information från systemvyerna. 
Det finns två uppsättningar systemvyer för Extended Events:
Katalogvyer
- Dessa vyer lagrar information om definitionen av varje händelsesession som skapas av CREATE EVENT SESSION (Transact-SQL). Men dessa vyer vet ingenting om huruvida några sessioner någonsin har börjat köras.
- Om till exempel SSMS Object Explorer visar att inga händelsesessioner har definierats returnerar SELECTing från vyn 
sys.server_event_session_targetsnoll rader. 
 - Om till exempel SSMS Object Explorer visar att inga händelsesessioner har definierats returnerar SELECTing från vyn 
 - De flesta av exemplen är skrivna för SQL Server och Azure SQL Managed Instance. Men med mindre redigeringar skulle de köras på Azure SQL Database och SQL Database i Fabric genom att ändra 
serveri DMV-namnet tilldatabase:- 
              
sys.server_event_session*är namnprefixet på SQL Server och Azure SQL Managed Instance. - 
              
sys.database_event_session*är namnprefixet på Azure SQL Database och SQL Database i Fabric. - Mer information om var och en finns i Katalogvyer för utökade händelser.
 
 - 
              
 
Dynamiska hanteringsvyer (DMV)
Lagra information om den nuvarande aktiviteten för pågående händelsesessioner. Men dessa DMV:er vet lite om definitionen av sessionerna.
- Även om alla händelsesessioner för närvarande är stoppade returnerar en 
SELECTfrån vynsys.dm_xe_packagesfortfarande rader eftersom olika paket har lästs in i aktivt minne vid en serverstart. - Av samma anledning 
sys.dm_xe_objectsochsys.dm_xe_object_columnsreturnerar fortfarande rader. 
- Även om alla händelsesessioner för närvarande är stoppade returnerar en 
 Namnprefix för Extended Events DMV:er är:
- 
              
sys.dm_xe_*är namnprefixet på SQL Server och Azure SQL Managed Instance. - 
              
sys.dm_xe_database_*är vanligtvis namnprefixet på Azure SQL Database och SQL Database i Fabric. 
- 
              
 
Permissions
För att komma åt SELECT från systemvyerna blir följande behörighet nödvändig:
- SQL Server 2019 (15.x) och tidigare versioner kräver 
VIEW SERVER STATEbehörighet på servern. - SQL Server 2022 (16.x) och senare versioner kräver 
VIEW SERVER PERFORMANCE STATEbehörighet på servern. - Azure SQL Database och SQL Database i Fabric kräver 
VIEW DATABASE PERFORMANCE STATEbehörighet i databasen. 
Katalogvyer
För den här sidan skapar du en extended events-session med SSMS eller med T-SQL. Använd alltid den senaste uppdateringen av SSMS.
Skapa session i SQL Server Management Studio (SSMS)
I SSMS i objektutforskaren kan du starta dialogrutan Ny session genom att expandera Hantering>av utökade händelser och sedan högerklicka på Sessioner>Ny session.
I den stora dialogrutan Ny session , i det första avsnittet med etiketten Allmänt, ser vi att alternativet har valts för att starta händelsesessionen vid serverstart.
Härnäst i avsnittet Händelser ser vi att lock_deadlock händelsen har valts. För den händelsen ser vi att tre åtgärder har valts. Det innebär att knappen Konfigurera har valts, vilket blir grått när du har valt den.
I avsnittet Konfigurera händelser> ser vi sedan att resource_type har angetts till .PAGE Det innebär att händelsedata inte skickas från händelsemotorn till målet om det resource_type värdet är något annat än PAGE.
Vi ser ytterligare predikatfilter för databasnamnet och för en räknare.
Härnäst i avsnittet Datalagring ser vi att event_file har valts som mål. Dessutom ser vi att alternativet Aktivera filrollover har valts.
Slutligen ser vi i avsnittet Avancerat att värdet Maximal svarstid för sändning minskades till 4 sekunder.
              
              
              
              
            
Skapa händelsesession i T-SQL
Oavsett hur en händelsesessionsdefinition skapas kan sessionen från SSMS omvandlas till ett perfekt matchande Transact-SQL skript. Du kan granska föregående skärmbilder av ny session och jämföra deras synliga specifikationer med satserna i följande genererade T-SQL-skript CREATE EVENT SESSION .
Om du vill bakåtkompilera en händelsesession kan du högerklicka på sessionsnoden i Objektutforskaren och sedan välja Skriptsession som>CREATE till** >Urklipp.
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
    );
Katalogvy VÄLJ ANSLUT UNION
Följande T-SQL-instruktion SELECT är lång bara för att den UNIONs flera små SELECTs tillsammans. Alla små SELECT:er kan köras på egen hand. De små SELECT-frågor visar hur de olika systemkatalogvyerna ska anslutas tillsammans.
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]
;
Utgång
Följande tabell visar utdata från körning av föregående SELECT JOIN UNION. Namnen och värdena på utdataparametrarna mappas till det som tydligt visas i föregående CREATE EVENT SESSION uttalande.
| Sessionsnamn | Klauxtyp | Parameter-namn | Parameter-Värde | 
|---|---|---|---|
event_session_test3 | 
1_EVENT | Evenemangsnamn | 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 | Ej tillämplig | 
event_session_test3 | 
3_EVENT_ACTION | sqlserver.event_sequence | (Not_Applicable) | 
event_session_test3 | 
4_HÄNDELSE_PREDIKAT | ([sqlserver]. [equal_i_sql_unicode_string]([database_name],N'InMemTest2') AND [package0]. [räknare]<=(16)) | 
(Not_Applicable) | 
event_session_test3 | 
5_TARGET | händelsefil | (Not_Applicable) | 
event_session_test3 | 
6_TARGET_SET | filename | c:\temp\event_session_test3_EF.xel | 
event_session_test3 | 
6_MÅL_INSTÄLLNING | maximal_filstorlek | 20 | 
event_session_test3 | 
6_MÅL_SET | max_rollover_files | 2 | 
event_session_test3 | 
7_WITH_MAX_MEMORY | maximal minnesanvändning | 4096 | 
event_session_test3 | 
7_WITH_STARTUP_STATE | starttillstånd | 1 | 
Detta slutför avsnittet om katalogvyer.
Dynamiska hanteringsvyer (DMV:er)
Det här avsnittet innehåller flera Transact-SQL-instruktioner SELECT som var och en har ett särskilt användbart affärssyfte. Dessutom visar SELECT:erna hur du kan JOIN samla DMV:erna för alla nya användningsområden som du vill.
Referensdokumentation för DMV:erna finns i Dynamiska hanteringsvyer för utökade händelser
Alla objekt som du kan använda i området för utökade händelser kommer från paket som läses in i systemet. I det här avsnittet visas alla paket och deras beskrivningar.
SELECT  --C.1
        p.name         AS [Package],
        p.description  AS [Package-Description]
    FROM
        sys.dm_xe_packages  AS p
    ORDER BY
        p.name;
Utgång
Här är listan över paket.
| Package | Paketbeskrivning | 
|---|---|
filestream | 
Utökade händelser för SQL Server FILESTREAM och FileTable | 
package0 | 
Standardpaket. Innehåller alla standardtyper, kartor, jämför operatorer, åtgärder och mål | 
qds | 
Utökade händelser för Query Store | 
SecAudit | 
Säkerhetsgranskningshändelser | 
sqlclr | 
Utökade händelser för SQL CLR | 
sqlos | 
Utökade händelser för SQL-operativsystem | 
SQLSatellite | 
Utökade händelser för SQL Server Machine Learning Services | 
sqlserver | 
Utökade händelser för Microsoft SQL Server | 
sqlsni | 
Utökade händelser för Microsoft SQL Server | 
ucs | 
Utökade händelser för Unified Communications Stack | 
XtpCompile | 
Utökade händelser för XTP-kompilering | 
XtpEngine | 
Utökade händelser för XTP-motorn | 
XtpRuntime | 
Utökade händelser för XTP Runtime | 
Definitioner av föregående initialismer:
- 
              
clr= Common Language Runtime för .NET - 
              
qds= Query Data Store - 
              
sni= Servernätverksgränssnitt - 
              
ucs= Enhetlig kommunikationsstack - 
              
xtp= Extrem transaktionsbearbetning 
VÄLJ alla tillgängliga objekt sorterade efter typ
Följande SELECT returnerar en rad för varje objekt.
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];
Tillgängliga datafält för din händelse
Följande SELECT returnerar alla datafält som är specifika för din händelsetyp.
- Observera satsobjektet 
WHERE:column_type = 'data'. - Du skulle också behöva redigera satsvärdet 
WHEREföro.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];
Utgång
Följande rader returnerades av föregående SELECT, WHERE o.name = 'lock_deadlock':
- Varje rad representerar ett valfritt filter för 
sqlserver.lock_deadlockhändelsen. - Kolumnen 
Column-Descriptionutelämnas från följande visning. Dess värde är oftaNULL. - Det här är faktiska utdata, förutom den utelämnade kolumnen Beskrivning som ofta 
NULLär . - Dessa rader är 
WHERE object_type = 'lock_deadlock'. 
| Package | Event | Kolumn-för-Predikat-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 och händelsefält
Följande SELECT innehåller en JOIN i sys.dm_xe_map_values vyn.
Syftet med att SELECT visa de många fält som du kan välja mellan för händelsesessionen. Händelsefälten kan användas på två sätt:
- Välj vilka fältvärden som ska skrivas till målet för varje händelsehändelse.
 - Så här filtrerar du vilka händelsehändelser som ska skickas till och behållas från målet.
 
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];
Utgång
Nästa är ett urval av de faktiska 100+ raderna med utdata från föregående T-SQL SELECT. Raden för resource_type är relevant för predikatfiltreringen som används i event_session_test3 exempel som finns någon annanstans i den här artikeln.
/***  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.
***/
Parametrar för mål
Följande SELECT returnerar varje parameter för målet. Varje parameter taggas för att ange om den är obligatorisk. De värden som du tilldelar parametrar påverkar målets beteende.
- Observera satsobjektet 
WHERE:object_type = 'customizable'. - Du skulle också behöva redigera villkorsvärdet 
WHEREföro.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];
Utgång
Följande rader med parametrar är en liten delmängd av dem som returneras av föregående 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 kastar target_data-kolumnen till XML
Detta DMV SELECT returnerar datarader från målobjektet för din aktiva händelsesession. Data skickas till XML, vilket gör att den returnerade cellen kan väljas för enkel visning i SSMS.
- Om händelsesessionen stoppas returnerar detta 
SELECTnoll rader. - Du skulle behöva redigera satsvärdet 
WHEREförs.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!>';
Utdata, den enda raden, med sin XML-cell
Här är den enda raden som är resultat från den föregående SELECT. Kolumnen XML-Cast innehåller en XML-sträng som SSMS förstår är XML. Därför förstår SSMS att det bör göra cellen XML-Cast valbar.
För den här körningen:
- Värdet 
s.name =har angetts till en händelsesession förcheckpoint_beginhändelsen. - Målet var en 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>
Utdata, XML visas snyggt när cellen är markerad
När XML-Cast cellen är markerad visas följande vackra skärm.
<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>
VÄLJ från en funktion för att hämta event_file data från diskenheten
Anta att händelsesessionen samlade in data och senare stoppades. Om din session konfigurerades för att använda event_file-target kan du fortfarande hämta data genom att anropa funktionen sys.fn_xe_target_read_file.
- Du måste redigera sökvägen och filnamnet i parametern för funktionsanropet innan du kör den här 
SELECT.- Bry dig inte om de extra siffror som SQL-systemet bäddar in i din faktiska . XEL-filnamn varje gång du startar om sessionen. Ge bara det normala rotnamnet och tillägget.
 
 
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;
Utdata, rader som returneras av SELECT FRÅN funktionen
Nästa är de rader som returneras av föregående SELECT FROM funktion. 
              Event-Data-As-XML XML-kolumnen innehåller de data som specifikt handlar om händelsehändelsen.
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>
Utdata för en XML-cell
Här är innehållet i den första XML-cellen från den föregående returnerade raduppsättningen.
<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>