sys.server_event_sessions (Transact-SQL)

适用于: SQL Server Azure SQL 托管实例

列出 SQL Server 或Azure SQL 托管实例中存在的所有服务器范围事件会话定义。

注意

Azure SQL 数据库仅支持数据库范围的事件会话。 请参阅相关视图, sys.database_event_sessions

列名称 数据类型 描述
event_session_id int 事件会话的唯一 ID。 不可为 Null。
name sysname 标识事件会话的用户定义名称。 名称是唯一的。 不可为 Null。
event_retention_mode nchar(1) 确定如何处理事件丢失。 默认为 S。 不可为 Null。 可以是以下其中一个值:

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
event_retention_mode_desc sysname 介绍了如何处理事件丢失。 默认为 ALLOW_SINGLE_EVENT_LOSS。 不可为 Null。 可以是以下其中一个值:

ALLOW_SINGLE_EVENT_LOSS。 事件可能从会话中丢失。 所有事件缓冲区都已满时仅删除单个事件。 当缓冲区已满时丢失单个事件可以接受 SQL Server 性能特征,同时最大程度地减少处理的事件流中的丢失。

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

NO_EVENT_LOSS。 不允许事件丢失。 此选项可确保保留所有引发的事件。 使用此选项可强制所有可激发事件的任务都等到事件缓冲区中有可用空间时再执行。 这可能会导致事件会话处于活动状态时可检测到的性能下降。
max_dispatch_latency int 事件在提供给会话目标之前在内存中缓冲的时间(以毫秒为单位)。 有效值为 0 到 2,147,483,648 和 0。 指示调度延迟无限的值 0 。 Nullable。
max_memory int 分配给会话的用于事件缓冲的内存量。 默认值为 4 MB。 Nullable。
max_event_size int 为不适合事件会话缓冲区的事件预留的内存量。 如果 max_event_size 超出计算缓冲区大小,则为事件会话分配另外两个 max_event_size 缓冲区。 Nullable。
memory_partition_mode nchar(1) 事件缓冲区在内存中的创建位置。 默认分区模式为 G. 不可为 Null。 memory_partition_mode 是下列项之一:

G - NONE
C - PER_CPU
N - PER_NODE
memory_partition_mode_desc sysname 默认为 NONE。 不可为 Null。 可以是以下其中一个值:

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

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

PER_NODE。 为每个非一致性内存访问 (NUMA) 节点创建一组缓冲区。
track_causality bit 启用或禁用因果关系跟踪。 如果设置为 1ON),则会启用跟踪,并且不同服务器连接上的相关事件可以关联。 默认设置为 0OFF)。 不可为 Null。
startup_state bit 值可以确定服务器启动时是否自动启动会话。 默认为 0。 不可为 Null。 可以是以下选项之一:

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

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

权限

SQL Server 2019 (15.x) 和以前的版本需要 VIEW SERVER STATE 对服务器具有权限。

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