sys.dm_xe_sessions (Transact-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 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 | 缓冲区已满时删除的事件数。 此值 0 为 buffer_policy_desc “删除完整缓冲区”或“不删除事件”。 不可为 Null。 |
dropped_buffer_count |
int | 缓冲区已满时删除的缓冲区数。 如果0 buffer_policy_desc 此值设置为“Drop event”或“请勿删除事件”。 不可为 Null。 即使未在会话级别删除缓冲区,单个目标仍可能由于目标原因而无法处理缓冲区。 |
blocked_event_fire_time |
int | 缓冲区已满时事件触发受阻的时间长度。 此值 0 是 buffer_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 SERVER STATE 权限。
对于 SQL Server 2022(16.x)及更高版本,需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。
后续步骤
通过以下文章详细了解相关概念: