Performance Statistics 事件类
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
Performance Statistics 事件类可用于监视正在执行的查询、存储过程和触发器的性能。 六个事件子类分别表示系统内查询、存储过程和触发器的生存期内的一个事件。 使用这些事件子类的组合以及关联的 sys.dm_exec_query_stats、sys.dm_exec_procedure_stats 和 sys.dm_exec_trigger_stats 动态管理视图,可以重新构建任何给定查询、存储过程或触发器的性能历史记录。
Performance Statistics 事件类的数据列
下表介绍了与下面每个事件子类关联的事件类数据列:EventSubClass 0、EventSubClass 1、EventSubClass 2、EventSubClass 3、EventSubClass 4 和 EventSubClass 5。
EventSubClass 0
数据列名称 | 数据类型 | 说明 | 列 ID | 可筛选 |
---|---|---|---|---|
BigintData1 | bigint | Null | 52 | 是 |
BinaryData | image | Null | 2 | 是 |
DatabaseID | int | 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 | 3 | 是 |
EventSequence | int | 给定事件在请求中的顺序。 | 51 | 否 |
EventSubClass | int | 事件子类的类型。 0 = 当前未存在于缓存中的新批处理 SQL 文本。 下列 EventSubClass 类型是在即席批查询的跟踪中生成的。 对于有 n 次查询的即席批查询: 1 个类型 0 的查询 |
21 | 是 |
IntegerData2 | int | Null | 55 | 是 |
ObjectID | int | Null | 22 | 是 |
Offset | int | Null | 61 | 是 |
PlanHandle | 图像 | Null | 65 | 是 |
SessionLoginName | nvarchar | 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 | 64 | 是 |
SPID | int | 发生该事件的会话的 ID。 | 12 | 是 |
SqlHandle | image | SQL 句柄,可使用该句柄通过 sys.dm_exec_sql_text 动态管理视图来获取批查询 SQL 文本。 | 63 | 是 |
StartTime | datetime | 该事件(如果存在)的启动时间。 | 14 | 是 |
TextData | ntext | 批处理的 SQL 文本。 | 1 | 是 |
EventSubClass 1
数据列名称 | 数据类型 | 说明 | 列 ID | 可筛选 |
---|---|---|---|---|
BigintData1 | bigint | 重新编译此计划的累积次数。 | 52 | 是 |
BinaryData | image | 已编译计划的二进制 XML。 | 2 | 是 |
DatabaseID | int | 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 | 3 | 是 |
EventSequence | int | 给定事件在请求中的顺序。 | 51 | 否 |
SessionLoginName | nvarchar | 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 | 64 | 是 |
EventSubClass | int | 事件子类的类型。 1 = 存储过程中的查询已编译。 下列 EventSubClass 类型是在存储过程的跟踪中生成的。 对于有 n 次查询的存储过程: n 个类型 1 的查询 |
21 | 是 |
IntegerData2 | int | 存储过程内语句的结尾。 对于存储过程的结尾,此值为 -1。 |
55 | 是 |
ObjectID | int | 系统分配的对象 ID。 | 22 | 是 |
Offset | int | 存储过程或批查询中的语句的起始偏移量。 | 61 | 是 |
SPID | int | 发生该事件的会话的 ID。 | 12 | 是 |
SqlHandle | image | SQL 句柄,可使用该句柄通过 dm_exec_sql_text 动态管理视图来获取存储过程的 SQL 文本。 | 63 | 是 |
StartTime | datetime | 该事件(如果存在)的启动时间。 | 14 | 是 |
TextData | ntext | Null | 1 | 是 |
PlanHandle | image | 存储过程的编译计划的计划句柄。 可使用该句柄通过 sys.dm_exec_query_plan 动态管理视图来获取 XML 计划。 | 65 | 是 |
ObjectType | int | 表示事件中涉及的对象类型的值。 8272 = 存储过程 |
28 | 是 |
BigintData2 | bigint | 在编译过程中使用的总内存 (KB)。 | 53 | 是 |
CPU | int | 编译过程中所用的总 CPU 时间(毫秒)。 | 18 | 是 |
持续时间 | int | 编译过程中所用的总时间(毫秒)。 | 13 | 是 |
IntegerData | int | 编译计划的大小 (KB)。 | 25 | 是 |
EventSubClass 2
数据列名称 | 数据类型 | 说明 | 列 ID | 可筛选 |
---|---|---|---|---|
BigintData1 | bigint | 重新编译此计划的累积次数。 | 52 | 是 |
BinaryData | image | 已编译计划的二进制 XML。 | 2 | 是 |
DatabaseID | int | 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 | 3 | 是 |
EventSequence | int | 给定事件在请求中的顺序。 | 51 | 否 |
SessionLoginName | nvarchar | 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 | 64 | 是 |
EventSubClass | int | 事件子类的类型。 2 = 临时 SQL 语句中的查询已编译。 下列 EventSubClass 类型是在即席批查询的跟踪中生成的。 对于有 n 次查询的即席批查询: n 个类型 2 的查询 |
21 | 是 |
IntegerData2 | int | 批处理内语句的结尾。 对于批处理的结尾,此值为 -1。 |
55 | 是 |
ObjectID | int | 空值 | 22 | 是 |
Offset | int | 批处理中的语句的起始偏移量。 对于批处理的开始,此值为 0。 |
61 | 是 |
SPID | int | 发生该事件的会话的 ID。 | 12 | 是 |
SqlHandle | image | SQL 句柄。 可使用该句柄通过 dm_exec_sql_text 动态管理视图来获取批查询 SQL 文本。 | 63 | 是 |
StartTime | datetime | 该事件(如果存在)的启动时间。 | 14 | 是 |
TextData | ntext | Null | 1 | 是 |
PlanHandle | image | 批处理的编译计划的计划句柄。 可使用该句柄通过 dm_exec_query_plan 动态管理视图来获取批查询 XML 计划。 | 65 | 是 |
BigintData2 | bigint | 在编译过程中使用的总内存 (KB)。 | 53 | 是 |
CPU | int | 编译过程中所用的总 CPU 时间(毫秒)。 | 18 | 是 |
持续时间 | int | 编译过程中所用的总时间(毫秒)。 | 13 | 是 |
IntegerData | int | 编译计划的大小 (KB)。 | 25 | 是 |
EventSubClass 3
数据列名称 | 数据类型 | 说明 | 列 ID | 可筛选 |
---|---|---|---|---|
BigintData1 | bigint | 重新编译此计划的累积次数。 | 52 | 是 |
BinaryData | image | Null | 2 | 是 |
DatabaseID | int | 由 USE database 语句指定的数据库的 ID;如果未对给定实例发出 USE database 语句,则为默认数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 | 3 | 是 |
EventSequence | int | 给定事件在请求中的顺序。 | 51 | 否 |
SessionLoginName | nvarchar | 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 | 64 | 是 |
EventSubClass | int | 事件子类的类型。 3 = 保存在缓存中的某一查询已被破坏,与此计划相关的历史性能数据也将被破坏。 下列 EventSubClass 类型是在跟踪中生成的。 对于有 n 次查询的即席批查询: 1 个类型 3 的查询(当从缓存中刷新查询时) 对于有 n 次查询的存储过程: 1 个类型 3 的查询(当从缓存中刷新查询时)。 |
21 | 是 |
IntegerData2 | int | 存储过程或批处理中的语句的结尾。 对于存储过程或批处理的结尾,此值为 -1。 |
55 | 是 |
ObjectID | int | Null | 22 | 是 |
Offset | int | 存储过程或批查询中的语句的起始偏移量。 对于存储过程或批处理的开始,此值为 0。 |
61 | 是 |
SPID | int | 发生该事件的会话的 ID。 | 12 | 是 |
SqlHandle | image | SQL 句柄,可使用该句柄通过 dm_exec_sql_text 动态管理视图来获取存储过程或批查询 SQL 文本。 | 63 | 是 |
StartTime | datetime | 该事件(如果存在)的启动时间。 | 14 | 是 |
TextData | ntext | QueryExecutionStats | 1 | 是 |
PlanHandle | image | 存储过程或批处理的编译计划的计划句柄。 可使用该句柄通过 dm_exec_query_plan 动态管理视图来获取 XML 计划。 | 65 | 是 |
GroupID | int | 在其中激发 SQL 跟踪事件的工作负荷组的 ID。 | 66 | 是 |
EventSubClass 4
数据列名称 | 数据类型 | 说明 | 列 ID | 可筛选 |
---|---|---|---|---|
BigintData1 | bigint | Null | 52 | 是 |
BinaryData | image | Null | 2 | 是 |
DatabaseID | int | 给定存储过程所在的数据库的 ID。 | 3 | 是 |
EventSequence | int | 给定事件在请求中的顺序。 | 51 | 否 |
SessionLoginName | nvarchar | 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 | 64 | 是 |
EventSubClass | int | 事件子类的类型。 4 = 缓存的存储过程已从缓存中删除,与它关联的历史性能数据也即将销毁。 |
21 | 是 |
IntegerData2 | int | Null | 55 | 是 |
ObjectID | int | 存储过程的 ID。 与 sys.procedures 中的 object_id 列相同。 | 22 | 是 |
Offset | int | Null | 61 | 是 |
SPID | int | 发生该事件的会话的 ID。 | 12 | 是 |
SqlHandle | image | SQL 句柄,可使用该句柄通过 dm_exec_sql_text 动态管理视图来获取所执行的存储过程 SQL 文本。 | 63 | 是 |
StartTime | datetime | 该事件(如果存在)的启动时间。 | 14 | 是 |
TextData | ntext | ProcedureExecutionStats | 1 | 是 |
PlanHandle | image | 存储过程的编译计划的计划句柄。 可使用该句柄通过 dm_exec_query_plan 动态管理视图来获取 XML 计划。 | 65 | 是 |
GroupID | int | 在其中激发 SQL 跟踪事件的工作负荷组的 ID。 | 66 | 是 |
EventSubClass 5
数据列名称 | 数据类型 | 说明 | 列 ID | 可筛选 |
---|---|---|---|---|
BigintData1 | bigint | Null | 52 | 是 |
BinaryData | image | Null | 2 | 是 |
DatabaseID | int | 给定触发器所在的数据库的 ID。 | 3 | 是 |
EventSequence | int | 给定事件在请求中的顺序。 | 51 | 否 |
SessionLoginName | nvarchar | 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Windows 登录名。 | 64 | 是 |
EventSubClass | int | 事件子类的类型。 5 = 缓存的触发器已从缓存中删除,与它关联的历史性能数据也即将销毁。 |
21 | 是 |
IntegerData2 | int | Null | 55 | 是 |
ObjectID | int | 触发器的 ID。 与 sys.triggers/sys.server_triggers 目录视图中的 object_id 列相同。 | 22 | 是 |
Offset | int | Null | 61 | 是 |
SPID | int | 发生该事件的会话的 ID。 | 12 | 是 |
SqlHandle | image | SQL 句柄,可使用该句柄通过 dm_exec_sql_text 动态管理视图来获取触发器的 SQL 文本。 | 63 | 是 |
StartTime | datetime | 该事件(如果存在)的启动时间。 | 14 | 是 |
TextData | ntext | TriggerExecutionStats | 1 | 是 |
PlanHandle | image | 触发器的编译计划的计划句柄。 可使用该句柄通过 dm_exec_query_plan 动态管理视图来获取 XML 计划。 | 65 | 是 |
GroupID | int | 在其中激发 SQL 跟踪事件的工作负荷组的 ID。 | 66 | 是 |
另请参阅
扩展事件
sp_trace_setevent (Transact-SQL)
Showplan XML For Query Compile 事件类
动态管理视图和函数 (Transact-SQL)