Dela via


SELECT- och JOIN-kommandon från systemvyer för Extended Events

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-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 JOIN olika systemvyer.
  • Så här gör du för specifika SELECT typer 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_targets noll rader.
  • 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 server i DMV-namnet till database:
    • 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 SELECT från vyn sys.dm_xe_packages fortfarande rader eftersom olika paket har lästs in i aktivt minne vid en serverstart.
    • Av samma anledning sys.dm_xe_objects och sys.dm_xe_object_columns returnerar fortfarande rader.
  • 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 STATE behörighet på servern.
  • SQL Server 2022 (16.x) och senare versioner kräver VIEW SERVER PERFORMANCE STATE behörighet på servern.
  • Azure SQL Database och SQL Database i Fabric kräver VIEW DATABASE PERFORMANCE STATE behö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.

Skärmbild från SSMS för de allmänna inställningarna för den nya sessionen >, 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.

Skärmbild från SSMS av de nya sessionshändelserna > , globala fält (åtgärder).

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.

Skärmbild från SSMS av de nya sessionshändelserna > , filtrera predikatfält (åtgärder).

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.

Skärmbild från SSMS för den nya sessionsdatalagringen > eventfile_enablefileroleover.

Slutligen ser vi i avsnittet Avancerat att värdet Maximal svarstid för sändning minskades till 4 sekunder.

Skärmbild från SSMS för den nya sessionen > Avancerat, Maximal leveransfördröjning.

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 WHERE för o.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_deadlock händelsen.
  • Kolumnen Column-Description utelämnas från följande visning. Dess värde är ofta NULL.
  • 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 WHERE för o.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 SELECT noll rader.
  • Du skulle behöva redigera satsvärdet WHERE för s.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ör checkpoint_begin hä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>