sys.server_event_sessions (Transact-SQL)

列出所有存在于 SQL Server 中的事件会话定义。

适用范围:SQL Server(SQL Server 2008 到当前版本)。

列名

数据类型

说明

event_session_id

int

事件会话的唯一 ID。 不可为 Null。

name

sysname

标识事件会话的用户定义名称。 name 是唯一的。 不可为 Null。

event_retention_mode

nchar(1)

确定如何处理事件丢失。 可以是下列值之一:

  • S. 映射到 event_retention_mode_desc = ALLOW_SINGLE_EVENT_LOSS

  • M. 映射到 event_retention_mode_desc = ALLOW_MULTIPLE_EVENT_LOSS

  • N. 映射到 event_retention_mode_desc = NO_EVENT_LOSS

默认值为 S。 不可为 Null。

event_retention_mode_desc

sysname

介绍了如何处理事件丢失。 可以是下列值之一:

  • ALLOW_SINGLE_EVENT_LOSS。 事件可能从会话中丢失。 所有事件缓冲区都已满时仅删除单个事件。 通过在缓冲区已满时丢失单个事件,SQL Server 可实现足以满足要求的性能特征,同时还可使处理过的事件流中的事件丢失下降到最低程度。

  • ALLOW_MULTIPLE_EVENT_LOSS。 完整的事件缓冲区可能从会话中丢失。 事件丢失的数目取决于分配给会话的内存大小、内存的分区以及缓冲区中的事件大小。 在快速填充事件缓冲区时,此选项可将对服务器性能的影响降到最低。 不过,大量的事件可能从会话中丢失。

  • NO_EVENT_LOSS。 不允许事件丢失。 此选项可确保保留所有引发的事件。 使用此选项可强制所有可激发事件的任务都等到事件缓冲区中有可用空间时再执行。 事件会话处于活动状态时,这可能会导致可以察觉的性能下降。

默认为 ALLOW_SINGLE_EVENT_LOSS。 不可为 Null。

max_dispatch_latency

int

在事件用于会话目标之前将其缓存在内存中的时间(以毫秒为单位)。 有效值为 1 到 2147483648 和 -1。 值 -1 表示调度滞后时间是无限期的。 可以为 Null。

max_memory

int

分配给会话的用于事件缓冲的内存量。 默认值为 4 MB。 可以为 Null。

max_event_size

int

为不适合事件会话缓冲区的事件保留的内存量。 如果 max_event_size 超出了计算的缓冲区大小,max_event_size 的两个附加缓冲区将分配给事件会话。 可以为 Null。

memory_partition_mode

nchar(1)

事件缓冲区在内存中的创建位置。 memory_partition_mode 是下列值之一:

  • G - NONE

  • C - PER_CPU

  • N - PER_NODE

默认分区模式是 G。 不可为 Null。

memory_partition_mode_desc

sysname

可以是下列值之一:

  • NONE。 在 SQL Server 实例中创建一组缓冲区。

  • PER_CPU。 为每个 CPU 创建一组缓冲区。

  • PER_NODE。 为每个非一致性内存访问 (NUMA) 节点创建一组缓冲区。

默认值为 NONE。 不可为 Null。

track_causality

bit

启用或禁用因果关系跟踪。 如果设置为 1 (ON),跟踪会被启用且不同服务器连接上的相关事件可以建立关联。 默认设置为 0 (OFF)。 不可为 Null。

startup_state

bit

值可以确定服务器启动时是否自动启动会话。 可以是下列值之一:

  • 0 (OFF)。 服务器启动时不启动会话。

  • 1 (ON)。 服务器启动时启动事件会话。

默认值为 0。 不可为 Null。

权限

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

请参阅

参考

目录视图 (Transact-SQL)

扩展事件目录视图 (Transact-SQL)

概念

扩展事件