Performance Statistics 事件类

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

Image

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

Duration

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

Duration

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