性能统计信息事件类可用于监视正在执行的查询、存储过程和触发器的性能。 六个事件子类中的每一个都指示系统中查询、存储过程和触发器的生存期内的事件。 使用这些事件子类和关联的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)