sys.dm_xe_sessions (Transact-SQL)

返回有关处于活动状态的扩展事件会话的信息。该会话是事件、操作和目标的集合。

列名

数据类型

说明

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)

指示会话事件缓冲区在所有缓冲区已满并且一个新事件被激发时的行为的说明。buffer_policy_desc 可以是下列选项之一:

  • 删除事件

  • 不删除事件

  • 删除已满缓冲区

  • 分配新缓冲区

不可为 Null。

flags

int

指示已对会话设置的标志的位图。不可为 Null。

flag_desc

nvarchar(256)

关于对会话设置的标志的说明。flag_desc 可以是下列选项任意项的组合:

  • 在关闭时刷新缓冲区

  • 专用调度程序

  • 允许递归事件

不可为 Null。

dropped_event_count

int

缓冲区已满时删除的事件数。如果缓冲区策略是“删除已满缓冲区”或“不删除事件”,则此值是 0。不可为 Null。

dropped_buffer_count

int

缓冲区已满时删除的缓冲区数。如果缓冲区策略设置为“删除事件”或“不删除事件”,则此值为 0。不可为 Null。

blocked_event_fire_time

int

缓冲区已满时事件触发受阻的时间长度。如果缓冲区策略是“删除已满缓冲区”或“删除事件”,则此值为 0。不可为 Null。

create_time

datetime

会话的创建时间。不可为 Null。

largest_event_dropped_size

int

不适合会话缓冲区的最大事件大小。不可为 Null。

权限

要求对服务器拥有 VIEW SERVER STATE 权限。

更改历史记录

更新的内容

更正了 name 和 blocked_event_fire_time 列的数据类型。

删除了 buffer_size 和 total_buffers 列。

添加了 total_regular_buffers、regular_buffer_size、total_large_buffers、large_buffer_size 和 total_buffer_size 列。