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

資料行名稱

資料類型

描述

資料行識別碼

可篩選

BigintData1

bigint

NULL

52

BinaryData

image

NULL

2

DatabaseID

int

資料庫的識別碼,這是由 USE database 陳述式所指定,而如果未針對特定執行個體發出 USE database 陳述式,則為預設的資料庫。如果在追蹤內擷取了 ServerName 資料行,而且伺服器可以使用,SQL Server Profiler 就會顯示資料庫的名稱。請使用 DB_ID 函數判斷資料庫的值。

3

EventSequence

int

要求中的給定事件順序。

51

EventSubClass

int

事件子類別的類型。

0 = 目前未顯示在快取中的新批次 SQL 文字。

特定批次的追蹤會產生下列 EventSubClass 類型。

針對查詢數目為 n 的特定批次:

  • 類型 0 之 1

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

事件發生所在之工作階段的識別碼。

12

SqlHandle

image

SQL 控制代碼,可用它來透過 sys.dm_exec_sql_text 動態管理檢視取得批次 SQL 文字。

63

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

批次的 SQL 文字。

1

EventSubClass 1

資料行名稱

資料類型

描述

資料行識別碼

可篩選

BigintData1

bigint

重新編譯這個計畫的累加次數。

52

BinaryData

image

已編譯計畫的二進位 XML。

2

DatabaseID

int

資料庫的識別碼,這是由 USE database 陳述式所指定,而如果未針對特定執行個體發出 USE database 陳述式,則為預設的資料庫。如果在追蹤內擷取了 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 的預存程序:

  • 類型 1 之 n 數字

21

IntegerData2

int

預存程序內的陳述式結尾。

-1 代表預存程序的結尾。

55

ObjectID

int

系統指派給物件的識別碼。

22

Offset

int

預存程序或批次內之陳述式的起始位移。

61

SPID

int

事件發生所在之工作階段的識別碼。

12

SqlHandle

image

SQL 控制代碼,可用它來透過 dm_exec_sql_text 動態管理檢視取得預存程序的 SQL 文字。

63

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

NULL

1

PlanHandle

image

預存程序之已編譯計畫的計畫控制代碼。這可用來取得 XML 計畫,其方式是利用 sys.dm_exec_query_plan 動態管理檢視。

65

ObjectType

int

代表參與事件之物件類型的值。

8272 = 預存程序

28

BigintData2

bigint

編譯期間使用的總記憶體,以 KB 為單位。

53

CPU

int

編譯期間所花的總 CPU 時間,以毫秒為單位。

18

Duration

int

編譯期間所用的總時間,以百萬分之一秒為單位。

13

IntegerData

int

已編譯計畫的大小,以 KB 為單位。

25

EventSubClass 2

資料行名稱

資料類型

描述

資料行識別碼

可篩選

BigintData1

bigint

重新編譯這個計畫的累加次數。

52

BinaryData

image

已編譯計畫的二進位 XML。

2

DatabaseID

int

資料庫的識別碼,這是由 USE database 陳述式所指定,而如果未針對特定執行個體發出 USE database 陳述式,則為預設的資料庫。如果在追蹤內擷取了 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 的特定批次:

  • 類型 2 之 n 數字

21

IntegerData2

int

批次內的陳述式結尾。

-1 代表批次的結尾。

55

ObjectID

int

22

Offset

int

批次內的陳述式起始位移。

0 代表批次的開頭。

61

SPID

int

事件發生所在之工作階段的識別碼。

12

SqlHandle

image

SQL 控制代碼。這可用來透過 dm_exec_sql_text 動態管理檢視取得批次 SQL 文字。

63

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

NULL

1

PlanHandle

image

批次之已編譯計畫的計畫控制代碼。這可用來取得批次 XML 計畫,其方式是利用 dm_exec_query_plan 動態管理檢視。

65

BigintData2

bigint

編譯期間使用的總記憶體,以 KB 為單位。

53

CPU

int

編譯期間所花的總 CPU 時間,以百萬分之一秒為單位。

18

Duration

int

編譯期間所用的總時間,以毫秒為單位。

13

IntegerData

int

已編譯計畫的大小,以 KB 為單位。

25

EventSubClass 3

資料行名稱

資料類型

描述

資料行識別碼

可篩選

BigintData1

bigint

重新編譯這個計畫的累加次數。

52

BinaryData

image

NULL

2

DatabaseID

int

資料庫的識別碼,這是由 USE database 陳述式所指定,而如果未針對特定執行個體發出 USE database 陳述式,則為預設的資料庫。如果在追蹤內擷取了 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 的特定批次:

  • 從快取中排清查詢時,類型 3 之 1

針對查詢數目為 n 的預存程序:

  • 從快取中排清查詢時,類型 3 之 1。

21

IntegerData2

int

預存程序或批次內的陳述式結尾。

-1 代表預存程序或批次的結尾。

55

ObjectID

int

NULL

22

Offset

int

預存程序或批次內之陳述式的起始位移。

0 代表預存程序或批次的開頭。

61

SPID

int

事件發生所在之工作階段的識別碼。

12

SqlHandle

image

SQL 控制代碼,可用它來透過 dm_exec_sql_text 動態管理檢視取得預存程序或批次 SQL 文字。

63

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

QueryExecutionStats

1

PlanHandle

image

預存程序或批次的編譯計畫之計畫控制代碼。這可用來取得 XML 計畫,其方式是利用 dm_exec_query_plan 動態管理檢視。

65

GroupID

int

SQL 追蹤事件引發所在之工作負載群組的識別碼。

66

EventSubClass 4

資料行名稱

資料類型

描述

資料行識別碼

可篩選

BigintData1

bigint

NULL

52

BinaryData

image

NULL

2

DatabaseID

int

給定預存程序所在之資料庫的識別碼。

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

預存程序的識別碼。這個識別碼與 sys.procedures 中的 object_id 資料行相同。

22

Offset

int

NULL

61

SPID

int

事件發生所在之工作階段的識別碼。

12

SqlHandle

image

SQL 控制代碼,可用它來取得之前使用 dm_exec_sql_text 動態管理檢視執行的預存程序 SQL 文字。

63

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

ProcedureExecutionStats

1

PlanHandle

image

預存程序之已編譯計畫的計畫控制代碼。這可用來取得 XML 計畫,其方式是利用 dm_exec_query_plan 動態管理檢視。

65

GroupID

int

SQL 追蹤事件引發所在之工作負載群組的識別碼。

66

EventSubClass 5

資料行名稱

資料類型

描述

資料行識別碼

可篩選

BigintData1

bigint

NULL

52

BinaryData

image

NULL

2

DatabaseID

int

給定觸發程序所在之資料庫的識別碼。

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

觸發程序的識別碼。這個識別碼與 sys.triggers/sys.server_triggers 目錄檢視中的 object_id 資料行相同。

22

Offset

int

NULL

61

SPID

int

事件發生所在之工作階段的識別碼。

12

SqlHandle

image

SQL 控制代碼,可用它來透過 dm_exec_sql_text 動態管理檢視取得觸發程序的 SQL 文字。

63

StartTime

datetime

事件啟動的時間 (如果有的話)。

14

TextData

ntext

TriggerExecutionStats

1

PlanHandle

image

觸發程序之已編譯計畫的計畫控制代碼。這可用來取得 XML 計畫,其方式是利用 dm_exec_query_plan 動態管理檢視。

65

GroupID

int

SQL 追蹤事件引發所在之工作負載群組的識別碼。

66