性能统计事件类

性能统计信息事件类可用于监视正在执行的查询、存储过程和触发器的性能。 六个事件子类中的每一个都指示系统中查询、存储过程和触发器的生存期内的事件。 使用这些事件子类和关联的sys.dm_exec_query_stats、sys.dm_exec_procedure_stats和sys.dm_exec_trigger_stats动态管理视图的组合,可以重新构造任何给定查询、存储过程或触发器的性能历史记录。

性能统计的事件类数据列

下表描述了与以下每个事件子类关联的事件类数据列:EventSubClass 0、EventSubClass 1、EventSubClass 2、EventSubClass 3、EventSubClass 4 和 EventSubClass 5。

EventSubClass 0

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BigintData1 bigint Null 52 是的
BinaryData image Null 2 是的
数据库ID int 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 3 是的
事件序列 int 给定事件在请求中的顺序。 51
事件子类 int 事件子类的类型。

0 = 缓存中当前不存在的新批处理 SQL 文本。

以下 EventSubClass 类型在临时批处理的跟踪中生成。

对于包含 n 个查询的临时批处理:

类型 0 的 1
21 是的
整数数据2 int Null 55 是的
ObjectID(对象标识符) int Null 22 是的
抵消 int Null 61 是的
PlanHandle Image Null 65 是的
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 64 是的
意大利公共数字身份系统 (SPID) int 该事件发生的会话 ID。 12 是的
SqlHandle image 可用于使用sys.dm_exec_sql_text动态管理视图获取批处理 SQL 文本的 SQL 句柄。 63 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext 批处理的 SQL 文本。 1 是的

EventSubClass 1

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BigintData1 bigint 重新编译此计划的累积次数。 52 是的
BinaryData image 已编译计划的二进制 XML。 2 是的
数据库ID int 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 3 是的
事件序列 int 给定事件在请求中的顺序。 51
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 64 是的
事件子类 int 事件子类的类型。

1 = 已编译存储过程中的查询。

以下 EventSubClass 类型在存储过程的跟踪中生成。

对于包含 n 个查询数的存储过程:

n 个 类型 1
21 是的
整数数据2 int 存储过程中的语句的结尾。

-1 表示存储过程的末尾。
55 是的
ObjectID(对象标识符) int 系统分配的对象 ID。 22 是的
抵消 int 存储过程或批查询中的语句的起始偏移量。 61 是的
意大利公共数字身份系统 (SPID) int 该事件发生的会话 ID。 12 是的
SqlHandle image 可用于使用dm_exec_sql_text动态管理视图获取存储过程的 SQL 文本的 SQL 句柄。 63 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext Null 1 是的
PlanHandle image 已编译计划的计划句柄,用于存储过程。 这可用于使用sys.dm_exec_query_plan动态管理视图获取 XML 计划。 65 是的
对象类型 int 一个表示事件中涉及的对象类型的值。

8272 = 存储过程
28 是的
BigintData2 bigint 编译期间使用的总内存(以 KB 为单位)。 53 是的
中央处理器 int 编译期间花费的总 CPU 时间(以毫秒为单位)。 18 是的
持续时间 int 编译期间所用的总时间(以微秒为单位)。 13 是的
整数数据 int 已编译计划的大小(以千字节为单位)。 二十五 是的

EventSubClass 2

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BigintData1 bigint 重新编译此计划的累积次数。 52 是的
BinaryData image 编译计划的二进制 XML。 2 是的
数据库ID int 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 3 是的
事件序列 int 给定事件在请求中的顺序。 51
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 64 是的
事件子类 int 事件子类的类型。

2 = 特定 SQL 语句中的查询已被编译。

以下 EventSubClass 类型在临时批次的跟踪中生成。

对于具有 n 个查询数的即席批处理:

n 2类的数量
21 是的
整数数据2 int 批处理中语句的末尾。

-1,标志着批处理结束。
55 是的
ObjectID(对象标识符) int 22 是的
抵消 int 批处理中语句的起始偏移量。

用于批处理开头的数字是0。
61 是的
意大利公共数字身份系统 (SPID) int 该事件发生的会话 ID。 12 是的
SqlHandle image SQL 句柄。 这可用于使用dm_exec_sql_text动态管理视图获取批处理 SQL 文本。 63 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext Null 1 是的
PlanHandle image 批处理中已编译计划的计划句柄。 这可用于使用dm_exec_query_plan动态管理视图获取批处理 XML 计划。 65 是的
BigintData2 bigint 编译期间使用的总内存(以 KB 为单位)。 53 是的
中央处理器 int 编译期间花费的总 CPU 时间(以微秒为单位)。 18 是的
持续时间 int 编译期间花费的总时间(以毫秒为单位)。 13 是的
整数数据 int 已编译计划的大小(以千字节为单位)。 二十五 是的

EventSubClass 3

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BigintData1 bigint 重新编译此计划的累积次数。 52 是的
BinaryData image Null 2 是的
数据库ID int 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 3 是的
事件序列 int 给定事件在请求中的顺序。 51
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 64 是的
事件子类 int 事件子类的类型。

3 = 缓存查询已被销毁,与计划关联的历史性能数据即将销毁。

在跟踪过程中生成以下“EventSubClass”类型。

对于具有 n 个查询的临时批处理:

从缓存刷新查询时,类型为 3 的 1

对于包含 n 个查询数的存储过程:
当查询从缓存中刷新时,是 3 型的其中一个。
21 是的
整数数据2 int 存储过程或批处理中的语句的末尾。

-1 用于存储过程或批处理的末尾。
55 是的
ObjectID(对象标识符) int Null 22 是的
抵消 int 存储过程或批查询中的语句的起始偏移量。

0 表示存储过程或批处理的开头。
61 是的
意大利公共数字身份系统 (SPID) int 该事件发生的会话 ID。 12 是的
SqlHandle image 可使用 SQL 句柄通过 dm_exec_sql_text 动态管理视图获取存储过程或批处理 SQL 文本。 63 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext 查询执行统计数据 1 是的
PlanHandle image 存储过程或批处理的已编译计划的计划句柄。 这可用于使用dm_exec_query_plan动态管理视图获取 XML 计划。 65 是的
群组ID int 在其中激发 SQL 跟踪事件的工作负荷组的 ID。 66 是的

EventSubClass 4

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BigintData1 bigint Null 52 是的
BinaryData image Null 2 是的
数据库ID int 给定存储过程所在的数据库的 ID。 3 是的
事件序列 int 给定事件在请求中的顺序。 51
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 64 是的
事件子类 int 事件子类的类型。

4 = 缓存存储过程已从缓存中删除,与之关联的历史性能数据即将销毁。
21 是的
整数数据2 int Null 55 是的
ObjectID(对象标识符) int 存储过程的 ID。 这与 sys.procedures 中的object_id列相同。 22 是的
抵消 int Null 61 是的
意大利公共数字身份系统 (SPID) int 该事件发生的会话 ID。 12 是的
SqlHandle image 可用于获取使用dm_exec_sql_text动态管理视图执行的存储过程 SQL 文本的 SQL 句柄。 63 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext 过程执行统计 1 是的
PlanHandle image 存储过程的已编译计划的计划句柄。 这可用于使用dm_exec_query_plan动态管理视图获取 XML 计划。 65 是的
群组ID int 在其中激发 SQL 跟踪事件的工作负荷组的 ID。 66 是的

EventSubClass 5

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BigintData1 bigint Null 52 是的
BinaryData image Null 2 是的
数据库ID int 给定触发器所在的数据库的 ID。 3 是的
事件序列 int 给定事件在请求中的顺序。 51
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 64 是的
事件子类 int 事件子类的类型。

5 = 缓存触发器已从缓存中删除,与之关联的历史性能数据即将销毁。
21 是的
整数数据2 int Null 55 是的
ObjectID(对象标识符) int 触发器的 ID。 这与 sys.triggers/sys.server_triggers 目录视图中的object_id列相同。 22 是的
抵消 int Null 61 是的
意大利公共数字身份系统 (SPID) int 该事件发生的会话 ID。 12 是的
SqlHandle image SQL 句柄可用于通过 dm_exec_sql_text 动态管理视图获取触发器的 SQL 文本。 63 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext 触发执行统计 1 是的
PlanHandle image 触发器编译计划的句柄。 这可用于使用dm_exec_query_plan动态管理视图获取 XML 计划。 65 是的
群组ID int 在其中激发 SQL 跟踪事件的工作负荷组的 ID。 66 是的

另请参阅

扩展事件
sp_trace_setevent(Transact-SQL)
用于查询编译事件类的 Showplan XML
动态管理视图和函数 (Transact-SQL)