sys.database_event_sessions(Azure SQL 数据库和Azure SQL 托管实例)
适用于:Azure SQL 数据库 Azure SQL 托管实例
列出当前数据库中存在的所有数据库范围内的事件会话定义。 有关活动数据库范围的事件会话的信息,请参阅sys.dm_xe_database_sessions。
Azure SQL 数据库仅支持数据库范围的会话。 Azure SQL 托管实例支持数据库范围的会话和服务器范围的会话。 建议对托管实例使用服务器范围的会话:在 CREATE EVENT SESSION 中了解详细信息。
列名称 | 数据类型 | 描述 |
---|---|---|
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。 不允许事件丢失。 此选项可确保保留所有引发的事件。 使用此选项可强制所有可激发事件的任务都等到事件缓冲区中有可用空间时再执行。 事件会话处于活动状态时,这可能会导致可以察觉的性能下降。 对于Azure SQL 数据库中的事件文件目标,行为与ALLOW_SINGLE_EVENT_LOSS相同。 有关详细信息,请参阅 EVENT_RETENTION_MODE。 |
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) | 事件缓冲区在内存中的创建位置。 默认分区模式是 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 | 启用或禁用因果关系跟踪。 如果设置为 1 (ON),跟踪会被启用且不同服务器连接上的相关事件可以建立关联。 默认设置为 0 (OFF)。 不可为 null。 |
startup_state | bit | 值可以确定服务器启动时是否自动启动会话。 默认值为 0。 不可为 null。 是以下项之一: 0 (OFF)。 服务器启动时会话不会启动。 1 (ON)。 服务器启动时启动事件会话。 |
权限
需要 VIEW DATABASE STATE 权限。
后续步骤
通过以下文章详细了解相关概念:
- sys.server_event_sessions返回 SQL Server 和 Azure SQL 托管实例 的服务器范围事件会话定义。
- Azure SQL 数据库中的扩展事件
- Azure SQL 数据库和SQL 托管实例中扩展事件的事件文件目标代码
- sys.database_event_session_actions(Azure SQL 数据库和Azure SQL 托管实例)
- sys.database_event_session_targets(Azure SQL 数据库和Azure SQL 托管实例)
- 使用动态管理视图监视 Microsoft Azure SQL 数据库和 Azure SQL 托管实例性能