sys.dm_xe_sessions (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

傳回伺服器範圍作用中擴充事件會話的相關信息。 會話是事件、動作和目標的集合。

Azure SQL Database 僅支援資料庫範圍工作階段。 請參閱 sys.dm_xe_database_sessions

資料行名稱 資料類型 描述
address varbinary(8) 工作階段的記憶體位址。 address 在本機系統中是唯一的。 不可為 Null。
name nvarchar(256) 工作階段的名稱。 name 在本機系統中是唯一的。 不可為 Null。
pending_buffers int 擱置處理的完整緩衝區數目。 不可為 Null。
total_regular_buffers int 與會話相關聯的一般緩衝區總數。 不可為 Null。

注意: 一般緩衝區大部分時間都會使用。 這些緩衝區的大小足以保存許多事件。 一般而言,每個會話有三個以上的緩衝區。 根據透過 MEMORY_PARTITION_MODE 選項設定的記憶體分割,伺服器會自動決定一般緩衝區的數目。 一般緩衝區的大小等於MAX_MEMORY選項的值(預設值為 4 MB),除以緩衝區數目。 如需MEMORY_PARTITION_MODE和MAX_MEMORY選項的詳細資訊,請參閱 CREATE EVENT SESSION (Transact-SQL)。
regular_buffer_size bigint 一般緩衝區大小,以位元組為單位。 不可為 Null。
total_large_buffers int 大型緩衝區的總數。 不可為 Null。

注意: 當事件大於一般緩衝區時,會使用大型緩衝區。 為了此目的,它們會明確放在一邊。 當事件會話啟動時,會配置大型緩衝區,並根據 MAX_EVENT_SIZE 選項來調整大小。 如需MAX_EVENT_SIZE選項的詳細資訊,請參閱 CREATE EVENT SESSION (Transact-SQL)
large_buffer_size bigint 大型緩衝區大小,以位元組為單位。 不可為 Null。
total_buffer_size bigint 記憶體緩衝區的總大小,用來以位元組為單位儲存會話的事件。 不可為 Null。
buffer_policy_flags int 位圖,指出當所有緩衝區都已滿且引發新事件時,會話事件緩衝區的行為方式。 不可為 Null。
buffer_policy_desc nvarchar(256) 描述,指出當所有緩衝區已滿且引發新事件時,會話事件緩衝區的行為方式。 不可為 Null。 buffer_policy_desc 可以是下列其中一個值:

- 卸除事件
- 不要卸除事件
- 卸除完整緩衝區
- 配置新的緩衝區
flags int 位圖,表示已在會話上設定的旗標。 不可為 Null。
flag_desc nvarchar(256) 會話上設定之旗標的描述。 不可為 Null。 flag_desc 可以是下列值的任何組合:

- 關閉時排清緩衝區
- 專用發送器
- 允許遞歸事件
dropped_event_count int 緩衝區已滿時捨棄的事件數目。 如果 buffer_policy_desc 為 「卸除完整緩衝區」或「不要卸除事件」,則此值0為 。 不可為 Null。
dropped_buffer_count int 緩衝區已滿時所卸除的緩衝區數目。 如果 buffer_policy_desc 設定為 「卸除事件」或「不要卸除事件」,則此值0為 。 不可為 Null。 即使緩衝區未在會話層級卸除,個別目標仍可能因為目標特定原因而無法處理緩衝區。
blocked_event_fire_time int 當緩衝區已滿時,會封鎖事件引發的時間長度。 如果 buffer_policy_desc 是 “Drop full buffer” 或 “Drop event”,則此值0為 。 不可為 Null。
create_time datetime 工作階段建立的時間(已啟動)。 不可為 Null。
largest_event_dropped_size int 不符合會話緩衝區的最大事件大小。 不可為 Null。
session_source nvarchar(256) 會話的範圍。 不可為 Null。 session_source 可以是下列其中一個值:

- 伺服器 = 範圍設定為伺服器的會話,包括用戶會話。
- internal = 某些內部會話,例如 sp_server_diagnostics 會話。
buffer_processed_count bigint 適用於:SQL Server 2017 (14.x) 和更新版本。

會話處理的緩衝區總數,並從會話開頭累積。 不可為 Null。
buffer_full_count bigint 適用於:SQL Server 2017 (14.x) 和更新版本。

處理緩衝區並從會話開頭累積時已滿的緩衝區數目。 不可為 Null。
total_bytes_generated bigint 適用於:SQL Server 2017 (14.x) 和更新版本。

擴充事件會話所產生的實際位元元組數目。 當會話正在處理緩衝區並僅適用於檔案目標時,會收集此資訊。 沒有其他目標的追蹤。
total_target_memory bigint 適用於:SQL Server 2019 (15.x) 和更新版本。

會話將資訊儲存在信號緩衝區目標中的會話,以位元組為單位的總目標記憶體。 不可為 Null。

權限

針對 SQL Server 2019 (15.x) 和舊版,需要伺服器的 VIEW SERVER STATE 許可權。

針對 SQL Server 2022 (16.x) 和更新版本,需要伺服器的 VIEW SERVER PERFORMANCE STATE 許可權。

下一步

在下列文章中深入了解相關概念: