sys.dm_xe_objects (Transact-SQL)

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

对事件包显示的每个对象都返回一行。 对象可以是以下项之一:

  • 事件。 事件指示执行路径中的相关点。 所有事件都包含与相关点有关的信息。

  • 操作。 激发事件时将同步执行操作。 操作可以将运行时数据追加到事件中。

  • 目标。 目标在激发事件的线程中同步使用事件或在系统提供的线程中异步使用事件。

  • 谓词。 谓词源从事件源中检索值以在比较运算中使用。 谓词比较用于比较特定的数据类型并返回一个布尔值。

  • 类型。 类型封装了字节集合的长度和特征,在解释数据时需要用到这些内容。

列名称 数据类型 说明
name nvarchar(60) 对象的名称。 对于特定对象类型,name 在包中是唯一的。 不可为 null。
object_type nvarchar(60) 对象的类型。 object_type是以下项之一:

event

action

目标

pred_source

pred_compare

类型

不可为 null。
package_guid uniqueidentifier 公开此操作的包的 GUID。 与 sys.dm_xe_packages.package_id 存在多对一关系。 不可为 null。
description nvarchar(256) 操作的说明。 说明由包作者设置。 不可为 null。
功能 int 说明对象功能的位图。 可以为 Null。
capabilities_desc nvarchar(256) 列出对象的所有功能。 可以为 Null。

适用于所有对象类型的功能

-
专用。 可供内部使用并且无法通过 CREATE/ALTER EVENT SESSION DDL 访问的唯一对象。 审核事件和目标属于此类别,此外,在内部使用的少量对象也属于此类别。

===============

事件功能

-
No_block。 事件位于无论任何原因都无法阻塞的关键代码路径中。 具有此功能的事件无法添加到指定 NO_EVENT_LOSS 的任何事件会话中。

===============

适用于所有对象类型的功能

-
Process_whole_buffers。 目标一次使用多个事件的缓冲区,而不是逐个使用事件。

-
单一实例。 在某一进程中只能存在目标的一个实例。 尽管多个事件会话可以引用相同的单个目标,但实际上只有一个实例,并且该实例将仅看到一次各唯一的事件。 如果将目标添加到全都收集同一个事件的多个会话,这一点非常重要。

-
Synchronous。 在控制权返回到调用代码行之前,将对正在生成事件的线程执行目标。
type_name nvarchar(60) pred_source 和 pred_compare 对象的名称。 可以为 Null。
type_package_guid uniqueidentifier 包的 GUID,此包公开此对象所操作的类型。 可以为 Null。
type_size int 数据类型的大小(单位为字节)。 仅限于有效的对象类型。 可以为 Null。

权限

要求具有服务器的 VIEW SERVER STATE 权限。

SQL Server 2022 及更高版本的权限

需要对服务器具有 VIEW SERVER PERFORMANCE STATE 权限。

关系基数

功能 关系
sys.dm_xe_objects.package_guid sys.dm_xe_packages.guid 多对一

后续步骤

通过以下文章详细了解相关概念: