適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 SQL 資料庫
本文說明與擴充事件相關的兩組系統檢視。 本文說明︰
- 如何檢視各種
JOIN系統視圖。 - 如何從
SELECT系統視圖中獲取特定類型的信息。
擴充事件有兩組系統檢視表:
目錄檢視
- 這些視圖會儲存 CREATE EVENT SESSION (Transact-SQL) 所建立之每一個事件階段作業定義的相關資訊。 但是這些檢視卻不知道任一工作階段是否已開始執行。
- 例如,如果 SSMS 物件總管 顯示未定義任何事件會話,則檢視
sys.server_event_session_targets中的 SELECTing 會傳回零資料列。
- 例如,如果 SSMS 物件總管 顯示未定義任何事件會話,則檢視
- 大部分的範例都是針對 SQL Server 和 Azure SQL 受控執行個體撰寫的。 但只要做少許調整,它們就可能在 Azure SQL 資料庫和 Fabric 的 SQL 資料庫中運行,方法是將 DMV 名稱中的
server變更為database:-
sys.server_event_session*是 SQL Server 和 Azure SQL 受控執行個體上的名稱前置詞。 -
sys.database_event_session*是 Azure SQL 資料庫和 Fabric 中 SQL 資料庫上的名稱前置詞。 - 如需每一個的詳細資訊,請參閱 擴充事件型錄檢視。
-
動態管理檢視 (DMV)
儲存執行事件工作階段的「目前活動」 相關資訊。 但是這些 DMV 對工作階段定義卻知之甚少。
- 即使目前所有事件階段作業都已停止,來自視圖的
SELECT仍然會傳回列,因為伺服器啟動時,各種套件會被載入至作用中記憶體。 - 基於同樣的原因,
sys.dm_xe_objects和sys.dm_xe_object_columns仍然傳回行。
- 即使目前所有事件階段作業都已停止,來自視圖的
擴充事件 DMV 的名稱前置詞是:
-
sys.dm_xe_*是 SQL Server 和 Azure SQL 受控執行個體上的名稱前置詞。 -
sys.dm_xe_database_*通常是 Azure SQL 資料庫和 Fabric 中 SQL 資料庫上的名稱前置詞。
-
權限
若要從系統檢視中SELECT,需要具備下列權限:
- SQL Server 2019 (15.x) 和舊版需要
VIEW SERVER STATE伺服器的許可權。 - SQL Server 2022 (16.x) 和更新版本需要
VIEW SERVER PERFORMANCE STATE伺服器的許可權。 - Azure SQL 資料庫和 Fabric 中的 SQL 資料庫需要
VIEW DATABASE PERFORMANCE STATE資料庫中的許可權。
目錄檢視
基於此頁面的目的,請使用 SSMS 或 T-SQL建立擴充事件會話。 安裝最新版本的 SQL Server Management Studio(SSMS)。
在 SQL Server Management Studio (SSMS) 中建立工作階段
在 SSMS 的 物件總管 中,您可以展開 管理>,然後以滑鼠右鍵按一下 工作階段>,以啟動 新增工作階段 對話方塊。
在大型 [新增工作階段] 對話方塊標示為 [一般] 的第一個區段中,我們看到已選取 [在伺服器啟動時啟動事件工作階段] 選項。
接下來在 「事件」 區段中,我們看到 lock_deadlock 事件已選擇。 我們看到該事件已選取三個 [動作] 。 這表示已選取「 設定」 按鈕,該按鈕在選取後會變為灰色。
> Events, Global Fields (Actions).
接下來,仍然在 事件>配置 部分,我們看到 resource_type 已設定為 PAGE。 這表示,如果 resource_type 的值不是 PAGE,則事件資料將不會從事件引擎傳送至目標。
我們會看到資料庫名稱和計數器的其他述詞篩選。
> Events, Filter Predicate Fields (Actions).
接著在 [資料儲存區] 區段,我們看到 event_file 已被選為目標。 而且,我們還看到已選取 [啟用檔案換用] 選項。
> Data Storage, eventfile_enablefileroleover.
最後,在 [進階] 區段看到 [分派延遲上限] 值減少到 4 秒。
> Advanced, Maximum dispatch latency.
在 T-SQL 中建立事件會話
不論如何建立事件會話定義,都可以從 SSMS 將會話反向工程化為完全相符的 Transact-SQL 腳本。 您可以檢查上述 新工作階段 螢幕快照,並將其可見規格與下列產生的 T-SQL CREATE EVENT SESSION 腳本中的子句進行比較。
若要對事件工作階段進行逆向工程,您可以在「物件總管」中,以滑鼠右鍵按一下您的工作階段節點,然後選擇「Script Session as>CREATE」,再**>剪貼簿。
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 結合在一起。 任何小型的 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 | (不適用) |
event_session_test3 |
3_EVENT_ACTION | sqlserver.collect_system_time | (不適用) |
event_session_test3 |
3_EVENT_ACTION | sqlserver.event_sequence | (不適用) |
event_session_test3 |
4_EVENT_PREDICATES | ([sqlserver]。[equal_i_sql_unicode_string]([database_name],N'InMemTest2') AND [package0]。[計數器]<=(16)) |
(不適用) |
event_session_test3 |
5_TARGET | event_file | (不適用) |
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 演示瞭如何將 JOIN DMV 組合在一起以實現您想要的任何新用途。
DMV 的參考檔可在擴充事件動態管理檢視取得
所有您可以在擴充事件區域中使用的物件,都來自系統載入的封裝。 本節會列出所有封裝及其說明。
SELECT --C.1
p.name AS [Package],
p.description AS [Package-Description]
FROM
sys.dm_xe_packages AS p
ORDER BY
p.name;
輸出
以下為封裝清單。
| Package | 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 對每個物件傳回一列。
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'。 - 此外,您需要編輯
WHERE的子句值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];
輸出
由先前的 SELECT、WHERE o.name = 'lock_deadlock' 返回下列行:
- 每一行代表
sqlserver.lock_deadlock事件的選用的篩選器。 - 以下顯示中省略了該
Column-Description列。 它的價值往往是NULL。 - 這是實際輸出,唯一省略的是通常為
NULL的 Description 欄位。 - 這些列是
WHERE object_type = 'lock_deadlock'。
| Package | 事件 | 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 。 事件欄位有兩種用法︰
- 選擇要將哪些欄位值寫入每次事件發生時的目標位置。
- 篩選會傳送的發生事件與從目標保留的發生事件。
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'。 - 此外,您需要編輯
WHERE的子句值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];
輸出
下列參數列是上述 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
這會從您的活動事件會話目標中回傳資料列。 資料會轉換成 XML,這可讓傳回的儲存格可供選取,以便在 SSMS 中輕鬆顯示。
- 如果您的事件會話已停止,這
SELECT傳回零列。 - 您需要編輯
WHERE的子句值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!>';
輸出:唯一的資料列,包括其 XML 儲存格。
這是從上述 SELECT輸出的唯一資料列。 資料行 XML-Cast 包含 SSMS 理解為 XML 的 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>
輸出:一個 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>