sys.dm_xe_sessions (Transact-SQL)
適用於:SQL Server Azure 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 許可權。
下一步
在下列文章中深入了解相關概念: