扩展事件

SQL Server扩展事件具有高度可缩放且高度可配置的体系结构,允许用户收集必要的信息来排查或识别性能问题。

可以在 Web 上的 SQL Server 扩展事件中找到有关扩展事件的详细信息。

SQL Server 扩展事件的优点

扩展事件是使用非常少的性能资源的轻型性能监视系统。 扩展事件提供两个图形用户界面(“新建会话向导”和“新建会话”),以便创建、修改、显示和分析你的会话数据。

扩展事件概念

SQL Server扩展事件 (扩展事件) 基于现有概念(如事件或事件使用者)构建,使用 Windows 事件跟踪的概念并引入了新概念。

下表描述了扩展事件中的概念。

主题 说明
SQL Server 扩展事件包 介绍了扩展事件包,扩展事件会话运行期间这些包中的对象将用于获取和处理数据。
SQL Server 扩展事件目标 介绍了在事件会话期间可接收数据的事件使用者。
SQL Server 扩展事件引擎 介绍了可实现和管理扩展事件会话的引擎。
SQL Server 扩展事件会话 介绍了扩展事件会话。

扩展事件体系结构

扩展事件 (Extended Events) 是用于服务器系统的常规事件处理系统。 扩展事件基础结构支持SQL Server的数据关联,在某些情况下支持操作系统和数据库应用程序中的数据的关联。 对于后一种情况,必须将扩展事件输出定向到 Windows 事件跟踪 (ETW),才能使事件数据与操作系统或应用程序事件数据建立关联。

所有应用程序都具有在应用程序外部和内部均有用的执行点。 在应用程序内部,可以使用任务初始执行期间收集到的信息对异步处理进行排队。 在应用程序外部,执行点为监视实用工具提供被监视应用程序的行为和性能特征的有关信息。

扩展事件支持在进程外部使用事件数据。 此类数据通常由以下工具或用户使用:

  • 跟踪工具,如 SQL 跟踪和系统监视器。

  • 日志记录工具,例如 Windows 事件日志或SQL Server错误日志。

  • 管理某个产品或为某个产品开发应用程序的用户。

扩展事件的设计涉及以下主要方面:

  • 扩展事件引擎是不识别事件的。 因此,该引擎可以将任何事件绑定到任何目标,因为该引擎不受事件内容约束。 有关扩展事件引擎的详细信息,请参阅 SQL Server Extended Events Engine

  • 事件与事件使用者不同,后者在扩展事件中称为“目标”。 也就是说任何目标可以接收任何事件。 此外,引发的任何事件均可供目标自动使用,这样可以记录或提供额外的事件上下文。 有关详细信息,请参阅 SQL Server Extended Events Targets

  • 事件不同于在事件发生时要执行的操作。 因此,任何操作可以与任何事件相关联。

  • 谓词可以在应捕获事件数据时动态进行筛选。 这增加了扩展事件基础结构的灵活性。 有关详细信息,请参阅 SQL Server Extended Events Packages

扩展事件可以同步生成事件数据(并异步处理该数据),这为事件处理提供了灵活的解决方案。 此外,扩展事件提供以下功能:

  • 一种跨服务器系统处理事件的统一方法,同时使用户可以隔离特定的事件进行故障排除。

  • 与现有的 ETW 工具集成并支持现有的 ETW 工具。

  • 基于 Transact-SQL 的完全可配置事件处理机制。

  • 可以动态监视活动进程,同时对这些进程的影响最小。

  • 运行时不会对性能造成任何明显影响的默认系统运行状况会话。 该会话收集的系统数据可用于帮助解决性能问题。 有关详细信息,请参阅 使用 system_health 会话

扩展事件任务

使用 Management Studio 或 Transact-SQL 执行 Transact-SQL 数据定义语言 (DDL) 语句、动态管理视图和函数或目录视图,可以为SQL Server环境创建简单或复杂的SQL Server扩展事件故障排除解决方案。

任务说明 主题
使用 “对象资源管理器” 管理事件会话。 在对象资源管理器中管理事件会话
介绍如何创建扩展事件会话。 创建扩展事件会话
介绍如何查看和刷新目标数据。 查看事件会话数据
介绍如何使用扩展事件工具创建和管理SQL Server扩展事件会话。 扩展事件工具
介绍如何更改扩展事件会话。 更改扩展事件会话
介绍如何复制或导出目标数据。 复制或导出目标数据
介绍如何修改跟踪结果视图以自定义要如何分析数据。 修改跟踪结果视图
介绍如何获取与事件关联的字段的信息。 获取所有事件的字段
介绍如何找到在已注册的包中有哪些事件可用。 查看已注册包的事件
介绍如何确定在已注册的包中有哪些扩展事件目标可用。 查看已注册包的扩展事件目标
介绍如何查看与各 SQL 跟踪事件及其关联列等效的扩展事件和操作。 查看与 SQL 跟踪事件类等效的扩展事件
介绍如何找到在 CREATE EVENT SESSION 或 ALTER EVENT SESSION 中使用 ADD TARGET 参数时可设置的参数。 获取 ADD TARGET 实参的可配置形参
介绍如何将现有 SQL 跟踪脚本转换为扩展事件会话。 将现有 SQL 跟踪脚本转换为扩展事件会话
介绍如何确定哪些查询持有锁、查询计划和获取锁时的 Transact-SQL 堆栈。 确定持有锁的查询
介绍如何识别影响数据库性能的锁来源。 查找具有最多锁定的对象
介绍如何将扩展事件和 Windows 事件跟踪配合使用来监视系统活动。 使用扩展事件监视系统活动

另请参阅

数据层应用程序
对 SQL Server 对象和版本的 DAC 支持
部署数据层应用程序
监视数据层应用程序
扩展事件动态管理视图
[扩展事件目录视图 (Transact-SQL) ] (~/relational-databases/system-catalog-views/extended-events-catalog-views-transact-sql