事件檔案目標

事件檔案目標是將完整緩衝區寫入磁碟的目標。

下表說明用來設定事件檔案目標的可用選項。

選項

允許的值

說明

filename

最多 260 個字元的任何字串。 這是必要的值。

檔案位置和檔案名稱。

您可以使用任何副檔名。

max_file_size

任何 64 位元整數。 這是選擇性的值。

最大檔案大小 (以 MB 為單位)。 如果未指定 max_file_size,檔案可以成長到磁碟已滿。 預設的檔案大小為 1GB。

max_file_size 必須大於工作階段緩衝區的目前大小。 如果沒有,檔案目標將無法初始化,而且系統會報告 max_file_size 無效。 若要檢視緩衝區的目前大小,請在 sys.dm_xe_sessions 動態管理檢視中查詢 buffer_size 資料行。

如果預設的檔案大小小於工作階段緩衝區大小,我們建議您將 max_file_size 設定為 sys.server_event_sessions 目錄檢視中 max_memory 資料行所指定的值。

當 max_file_size 的大小設定為大於工作階段緩衝區的大小時,它可能會向下捨入到最接近工作階段緩衝區大小的倍數。 這樣做可能會建立小於指定之 max_file_size 值的目標檔案。 例如,如果緩衝區大小是 100MB 而且 max_file_size 設定為 150MB,則產生的檔案就會向下捨入到 100MB,因為其餘 50MB 的空間無法容納第二個緩衝區。

如果預設的檔案大小小於工作階段緩衝區大小,我們建議您將 max_file_size 設定為 sys.server_event_sessions 目錄檢視中 max_memory 資料行的值。

max_rollover_files

任何 32 位元整數。 這是選擇性的值。

要保留在檔案系統中的最大檔案數。

increment

任何 32 位元整數。 這是選擇性的值。

檔案的累加成長 (以 MB 為單位)。 如果未指定,increment 的預設值就是工作階段緩衝區大小的兩倍。

第一次建立事件檔案目標時,您所指定的檔案名稱會附加 _0_ 和一個長整數值。 這個整數值會計算成介於 1600 年 1 月 1 日與建立檔案之日期和時間之間的毫秒數。 後續的換用檔案也會使用這個格式。 透過檢查長整數的值,您就可以判斷出最新的檔案。 下列範例說明您將 filename 選項指定為 C:\OutputFiles\MyOutput.xel 的情況下,要如何命名檔案:

  • 建立的第一個檔案 - C:\OutputFiles\MyOutput_0_128500310259380000.xel

  • 第一個換用檔案 - C:\OutputFiles\MyOutput_0_128505831770890000.xel

  • 第二個換用檔案 - C:\OutputFiles\MyOutput_0_132410772966237000.xel

將目標加入至工作階段

若要將事件檔案目標加入至擴充事件工作階段,您會在建立或改變事件工作階段時加入下列陳述式,並將 file_name 取代成所需的檔案名稱和路徑:

ADD TARGET package0.event_file(
   SET filename='file_name.xel')

檢閱目標輸出

若要檢閱檔案目標的輸出,您必須使用 sys.fn_xe_file_target_read_file 函數。 我們建議您將資料轉換成 XML。 您可以使用下列語法,並將 file_name 取代成加入目標時指定的檔案名稱和路徑:

SELECT *, CAST(event_data AS XML) AS 'event_data_XML'
FROM sys.fn_xe_file_target_read_file('file_name*.xel', NULL, NULL, NULL)

請參閱

參考

sys.fn_xe_file_target_read_file (Transact-SQL)

CREATE EVENT SESSION (Transact-SQL)

ALTER EVENT SESSION (Transact-SQL)

概念

SQL Server 擴充的事件目標