次の方法で共有


拡張イベントのシステム ビューからの SELECT と JOIN

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceMicrosoft Fabric の SQL データベース

この記事では、拡張イベントに関連する 2 セットのシステム ビューについて説明します。 以下のことについて説明します。

  • さまざまなシステム ビューを JOIN する方法。
  • システム ビューから特定の種類の情報を SELECT する方法。

拡張イベントには 2 セットのシステム ビューがあります。

カタログ ビュー

  • これらのビューには、CREATE EVENT SESSION (Transact-SQL) によって作成された各イベント セッションの定義に関する情報が格納されます。 ただし、これらのビューでは、セッションの実行が開始しているかどうかはわかりません。
    • たとえば、SSMS オブジェクト エクスプローラー でイベント セッションが定義されていないことが示されている場合、ビューから SELECTing sys.server_event_session_targets は 0 行を返します。
  • ほとんどの例は、SQL Server と Azure SQL Managed Instance 用に記述されています。 ただし、小規模な編集では、DMV 名の serverdatabase に変更することで、Azure SQL Database と Fabric の SQL データベースで実行されます。
    • sys.server_event_session* は、SQL Server と Azure SQL Managed Instance の名前プレフィックスです。
    • sys.database_event_session* は、Azure SQL Database と Fabric の SQL データベースの名前プレフィックスです。
    • それぞれの詳細については、「 拡張イベント カタログ ビュー」を参照してください。

動的管理ビュー (DMV)

  • 実行中のイベント セッションの 現在のアクティビティ に関する情報が格納されます。 ただし、これらの DMV はセッションの定義に関してはほとんどわかりません。

    • すべてのイベントセッションが現在停止している場合でも、サーバーの起動時にさまざまなパッケージがアクティブメモリにロードされるため、ビューのSELECTsys.dm_xe_packagesは依然として行を返します。
    • 同じ理由で、 sys.dm_xe_objectssys.dm_xe_object_columns は引き続き行を返します。
  • 拡張イベント DMV の名前プレフィックス:

    • sys.dm_xe_* は、SQL Server と Azure SQL Managed Instance の名前プレフィックスです。
    • sys.dm_xe_database_* は通常、Azure SQL Database と Fabric の SQL データベースの名前プレフィックスです。

Permissions

システム ビューから SELECT するには、次のアクセス許可が必要です。

  • SQL Server 2019 (15.x) 以前のバージョンでは、サーバーに対する VIEW SERVER STATE アクセス許可が必要です。
  • SQL Server 2022 (16.x) 以降のバージョンでは、サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。
  • Fabric の Azure SQL Database と SQL データベースには、データベース VIEW DATABASE PERFORMANCE STATE アクセス許可が必要です。

カタログ ビュー

このページでは、SSMS または T-SQL使用して拡張イベント セッションを作成します。 最新バージョンの SQL Server Management Studio (SSMS) をインストールします

SQL Server Management Studio (SSMS) でセッションを作成する

SSMS のオブジェクト エクスプローラーで、[管理>] を展開して [新しいセッション] ダイアログを開始し、[セッション>新しいセッション] を右クリックします。

大きい [新しいセッション] ダイアログの最初の [全般]セクションで、 [サーバーの起動時にイベント セッションを開始する]がオンになっています。

[新しいセッション] > [全般] の SSMS のスクリーンショット。サーバーの起動時にイベント セッションを開始します。

次に、[ イベント ] セクションで、 lock_deadlock イベントが選択されたことを確認します。 このイベントに対して、3 つの アクション が選択されています。 これは、[ 構成 ] ボタンが選択されたことを意味します。このボタンは、選択後に灰色になります。

新しいセッション > イベント、グローバル フィールド (アクション) の SSMS のスクリーンショット。

次に、[ Events>Configure ] セクションで、 resource_typePAGEに設定されていることがわかります。 つまり、resource_type値が以外の場合、イベント データはイベント エンジンからターゲットに送信されません。

データベース名とカウンターの述語フィルターを確認します。

新しいセッション > イベント、フィルター述語フィールド (アクション) の SSMS のスクリーンショット。

次に、[データ ストレージ] セクションでは、[event_file] がターゲットとして選択されています。 さらに、[ファイル ロールオーバーを有効にする] オプションがオンになっています。

> Data Storage, eventfile_enablefileroleover.

最後に、[詳細] セクションでは、[ディスパッチの最大待機時間] の値が 4 秒に短縮されています。

[新しいセッション] > [詳細]、[ディスパッチの最大待機時間] の SSMS のスクリーンショット。

T-SQL でイベント セッションを作成する

イベント セッション定義の作成方法に関係なく、SSMS からセッションを完全に一致する Transact-SQL スクリプトにリバース エンジニアリングできます。 上記の 新しいセッション のスクリーンショットを確認し、表示される仕様を、次の生成された T-SQL CREATE EVENT SESSION スクリプトの句と比較できます。

イベント セッションをリバース エンジニアリングするには、 オブジェクト エクスプローラー でセッション ノードを右クリックし、[ Script Session as>CREATE to** >Clipboard] を選択します。

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
    );

カタログ ビュー SELECT JOIN UNION

次の T-SQL SELECT ステートメントは、いくつかの小さな SELECT を一緒に UNION するためだけ長いです。 どの小さい SELECT もそれだけで実行できます。 小さい SELECT は、さまざまなシステム カタログ ビューを JOIN する方法を示しています。

SELECT
        s.name        AS [Session-Name],
        '1_EVENT'     AS [Clause-Type],
        'Event-Name'  AS [Parameter-Name],
        e.name        AS [Parameter-Value]
    FROM
              sys.server_event_sessions         AS s
        JOIN  sys.server_event_session_events   AS e

            ON  e.event_session_id = s.event_session_id
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name         AS [Session-Name],
        '2_EVENT_SET'  AS [Clause-Type],
        f.name         AS [Parameter-Name],
        f.value        AS [Parameter-Value]
    FROM
              sys.server_event_sessions         AS s
        JOIN  sys.server_event_session_events   AS e

            ON  e.event_session_id = s.event_session_id

        JOIN  sys.server_event_session_fields   As f

            ON  f.event_session_id = s.event_session_id
            AND f.object_id        = e.event_id
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name              AS [Session-Name],
        '3_EVENT_ACTION'    AS [Clause-Type],

        a.package + '.' + a.name
                            AS [Parameter-Name],

        '(Not_Applicable)'  AS [Parameter-Value]
    FROM
              sys.server_event_sessions         AS s
        JOIN  sys.server_event_session_events   AS e

            ON  e.event_session_id = s.event_session_id

        JOIN  sys.server_event_session_actions  As a

            ON  a.event_session_id = s.event_session_id
            AND a.event_id         = e.event_id
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name                AS [Session-Name],
        '4_EVENT_PREDICATES'  AS [Clause-Type],
        e.predicate           AS [Parameter-Name],
        '(Not_Applicable)'    AS [Parameter-Value]
    FROM
              sys.server_event_sessions         AS s
        JOIN  sys.server_event_session_events   AS e

            ON  e.event_session_id = s.event_session_id
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name              AS [Session-Name],
        '5_TARGET'          AS [Clause-Type],
        t.name              AS [Parameter-Name],
        '(Not_Applicable)'  AS [Parameter-Value]
    FROM
              sys.server_event_sessions         AS s
        JOIN  sys.server_event_session_targets  AS t

            ON  t.event_session_id = s.event_session_id
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name          AS [Session-Name],
        '6_TARGET_SET'  AS [Clause-Type],
        f.name          AS [Parameter-Name],
        f.value         AS [Parameter-Value]
    FROM
              sys.server_event_sessions         AS s
        JOIN  sys.server_event_session_targets  AS t

            ON  t.event_session_id = s.event_session_id

        JOIN  sys.server_event_session_fields   As f

            ON  f.event_session_id = s.event_session_id
            AND f.object_id        = t.target_id
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name               AS [Session-Name],
        '7_WITH_MAX_MEMORY'  AS [Clause-Type],
        'max_memory'         AS [Parameter-Name],
        s.max_memory         AS [Parameter-Value]
    FROM
              sys.server_event_sessions  AS s
    WHERE
        s.name = 'event_session_test3'

UNION ALL
SELECT
        s.name                  AS [Session-Name],
        '7_WITH_STARTUP_STATE'  AS [Clause-Type],
        'startup_state'         AS [Parameter-Name],
        s.startup_state         AS [Parameter-Value]
    FROM
              sys.server_event_sessions  AS s
    WHERE
        s.name = 'event_session_test3'

ORDER BY
    [Session-Name],
    [Clause-Type],
    [Parameter-Name]
;

出力

次の表は、上記の SELECT JOIN UNIONの実行からの出力を示しています。 出力パラメーターの名前と値は、前の 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]。[counter]<=(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

以上でカタログ ビューのセクションは終わりです。

動的管理ビュー (DMV)

このセクションでは、それぞれ特定の便利なビジネス目的に役立ついくつかの Transact-SQL SELECT ステートメントについて説明します。 さらに、SELECT は、任意の新しい用途に向けて DMV を組み合わせる方法を示しています。

DMV のリファレンス ドキュメントは、拡張イベントの動的管理ビューで入手できます

拡張イベントの領域で使用できるすべてのオブジェクトは、システムに読み込まれるパッケージから取得されます。 次の SELECT はすべてのパッケージとその説明をリストします。

SELECT  --C.1
        p.name         AS [Package],
        p.description  AS [Package-Description]
    FROM
        sys.dm_xe_packages  AS p
    ORDER BY
        p.name;

出力

パッケージのリストです。

パッケージ Package-Description
filestream SQL Server FILESTREAM と FileTable の拡張イベント
package0 既定のパッケージ。 すべての標準の型、マップ、比較演算子、アクション、およびターゲットが含まれています
qds クエリ ストアの拡張イベント
SecAudit セキュリティ監査イベント
sqlclr SQL CLR の拡張イベント
sqlos SQL オペレーティング システムの拡張イベント
SQLSatellite SQL Server Machine Learning Services の拡張イベント
sqlserver Microsoft SQL Server の拡張イベント
sqlsni Microsoft SQL Server の拡張イベント
ucs 統合コミュニケーション スタックの拡張イベント
XtpCompile XTP コンパイルの拡張イベント
XtpEngine XTP エンジンの拡張イベント
XtpRuntime XTP ランタイムの拡張イベント

上記の頭字語の定義:

  • clr = .NET の共通言語ランタイム
  • qds = クエリ データ ストア
  • sni = サーバー ネットワーク インターフェイス
  • ucs = ユニファイド コミュニケーション スタック
  • xtp = 極端なトランザクション処理

種類別に並べ替えられた使用可能なすべての項目を選択する

次の SELECT は、オブジェクトごとに 1 行を返します。

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];

イベントで使用できるデータ フィールド

次の SELECT は、イベントの種類に特有のすべてのデータ フィールドを返します。

  • WHERE句項目:column_type = 'data'に注意してください。
  • また、WHEREo.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];

出力

前の SELECT ( WHERE o.name = 'lock_deadlock') によって、次の行が返されました。

  • 各行は、 sqlserver.lock_deadlock イベントの省略可能なフィルターを表します。
  • 次の表示では、 Column-Description 列は省略されています。 多くの場合、その値は NULL
  • これは、多くの場合、 NULLされる省略された Description 列を除き、実際の出力です。
  • これらの行は WHERE object_type = 'lock_deadlock'
パッケージ 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とイベントフィールド

次のSELECTには、JOIN ビューへのsys.dm_xe_map_valuesが含まれています。

SELECTの目的には、イベント セッションで選択できる多数のフィールドが表示されます。 イベント フィールドは、2 つの方法で使用できます。

  • イベント発生ごとにターゲットに書き込むフィールド値を選択します。
  • 発生したイベントをターゲットに送るかどうかをフィルター処理する。
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];

出力

次に、前の T-SQL SELECTからの出力の実際の 100 行以上のサンプリングを示します。 resource_typeの行は、この記事の他の場所でevent_session_test3例で使用されている述語フィルター処理に関連します。

/***  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.
***/

ターゲットのパラメーター

次の SELECT は、ターゲットのすべてのパラメーターを返します。 各パラメーターには、必須かどうかを示すタグが付けられます。 パラメーターに割り当てる値によって、ターゲットの動作が変わります。

  • WHERE句項目:object_type = 'customizable'に注意してください。
  • また、WHEREo.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];

出力

次のパラメーター行は、前の 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 target_data列を XML にキャストする

この DMV SELECT は、アクティブなイベント セッションのターゲットからデータ行を返します。 データは XML にキャストされるため、返されたセルを選択して SSMS に簡単に表示できます。

  • イベント セッションが停止した場合、この SELECT は 0 行を返します。
  • WHEREs.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!>';

XML セルを含む唯一の出力行

上記の SELECTから出力される行は次のとおりです。 列 XML-Cast には、SSMS で認識される XML の文字列が含まれています。 したがって、SSMS は、 XML-Cast セルを選択可能にする必要があることを理解しています。

次のように設定されています。

  • s.name = 値は、checkpoint_begin イベントのイベント セッションに設定されました。
  • ターゲットは 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>

セルが選択されると、XML が整然と表示される

XML-Cast セルを選択すると、次のような表示が表示されます。

<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文を使用して、ディスクドライブからevent_fileデータを取得する

イベント セッションがデータを収集した後で停止されたものとします。 event_fileターゲットを使用するようにセッションが定義されている場合でも、関数 sys.fn_xe_target_read_fileを呼び出してデータを取得できます。

  • この SELECTを実行する前に、関数呼び出しのパラメーターにパスとファイル名を編集する必要があります。
    • セッションを再起動するたびに SQL システムが実際の .XEL ファイル名に埋め込む余分な桁に注意する必要はありません。 通常のルート名と拡張子を指定するだけです。
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;

関数の SELECT FROM によって返される出力行

次に、前の関数 SELECT FROM によって返される行を示します。 Event-Data-As-XML XML 列には、特にイベント発生に関するデータが含まれています。

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>

出力、1 個の XML セル

次に示すのは、上記の返された行セットの最初の XML セルの内容です。

<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>