sys.dm_xe_sessions (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

返回有关服务器范围内的活动扩展事件会话的信息。 会话是事件、操作和目标的集合。

Azure SQL 数据库仅支持数据库范围的会话。 请参阅 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 标准版SSION (Transact-SQL)。
regular_buffer_size bigint 常规缓冲区的大小(以字节为单位)。 不可为 Null。
total_large_buffers int 大型缓冲区的总数。 不可为 Null。

注意: 当事件大于常规缓冲区时,将使用大型缓冲区。 为此,需要显式保留这类缓冲区。 大型缓冲区在事件会话启动时分配,并根据 MAX_EVENT_SIZE 选项确定大小。 有关MAX_EVENT_SIZE选项的详细信息,请参阅 CREATE EVENT 标准版SSION (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 缓冲区已满时删除的事件数。 此值 0buffer_policy_desc “删除完整缓冲区”或“不删除事件”。 不可为 Null。
dropped_buffer_count int 缓冲区已满时删除的缓冲区数。 如果0buffer_policy_desc此值设置为“Drop event”或“请勿删除事件”。 不可为 Null。 即使未在会话级别删除缓冲区,单个目标仍可能由于目标原因而无法处理缓冲区。
blocked_event_fire_time int 缓冲区已满时事件触发受阻的时间长度。 此值 0buffer_policy_desc “删除完整缓冲区”或“删除事件”。 不可为 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 标准版RVER STATE 权限。

对于 SQL Server 2022(16.x)及更高版本,需要对服务器具有 VIEW 标准版RVER PERFORMANCE STATE 权限。

后续步骤

通过以下文章详细了解相关概念: