扩展事件引擎

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

扩展事件引擎是具有以下功能的服务和对象的集合:

  • 可以定义事件
  • 可以处理事件数据
  • 管理系统中的扩展事件服务和对象
  • 维护扩展事件会话列表并管理对该列表的访问

扩展事件引擎本身并不提供任何事件,也不提供在事件激发时要采取的操作。 使用扩展事件引擎的进程定义与引擎之间的交互。 这些进程用于添加事件点并提供为了响应事件激发而要采取的操作。

下图是扩展事件会话的一个简化视图。 有关详细信息,请参阅扩展事件会话

Diagram showing the detailed Extended Events architecture.

  • 每个 Windows 进程都拥有一个或多个模块(Win32 processWin32 module),也称为二进制可执行模块
  • 每个 Windows 进程模块都可以包含一个或多个扩展事件包 (Package),而扩展事件包则包含一个或多个扩展事件对象(TypeTargetActionMapPredicateEvent)。
  • 在主机进程中只能有一个扩展事件引擎实例(Extended event engine),该实例具有如下功能:
    • 管理会话的某些方面(如枚举会话)。
    • 处理调度(Dispatcher),类似于线程池
    • 处理事件的内存缓冲区(Buffer)。 缓冲区在填充后将被分派给目标。
  • 在创建会话并将事件绑定(可选)到该会话(Session context)之后:
    • 还可以创建目标实例(Target instance)并将其添加到会话中。
    • 缓冲区在填充后将被分派给目标。