Performance Statistics 事件類別
適用於:SQL ServerAzure 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
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
BigintData1 | bigint | NULL | 52 | Yes |
BinaryData | image | NULL | 2 | Yes |
DatabaseID | int | 如果指定的實例未發出USE database語句,則為USE database語句或預設資料庫所指定的資料庫標識碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 | 3 | Yes |
EventSequence | int | 要求內指定事件的順序。 | 51 | No |
EventSubClass | int | 事件子類別的類型。 0 = 快取中目前不存在的新批次 SQL 文字。 下列 EventSubClass 類型會在特定批次的追蹤中產生。 針對具有 n 個查詢數目的臨機操作批次: 類型 0 的 1 |
21 | Yes |
IntegerData2 | int | NULL | 55 | Yes |
ObjectID | int | NULL | 22 | Yes |
Offset | int | NULL | 61 | Yes |
PlanHandle | 映像 | NULL | 65 | Yes |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
SPID | int | 事件發生所在之工作階段的識別碼。 | 12 | Yes |
SqlHandle | image | SQL 句柄,可用來使用sys.dm_exec_sql_text動態管理檢視來取得批次 SQL 文字。 | 63 | Yes |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | 批次的 SQL 文字。 | 1 | Yes |
EventSubClass 1
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
BigintData1 | bigint | 此計劃已重新編譯的累計次數。 | 52 | Yes |
BinaryData | image | 已編譯計劃的二進位 XML。 | 2 | Yes |
DatabaseID | int | 如果指定的實例未發出USE database語句,則為USE database語句或預設資料庫所指定的資料庫標識碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 | 3 | Yes |
EventSequence | int | 要求內指定事件的順序。 | 51 | No |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
EventSubClass | int | 事件子類別的類型。 1 = 已編譯預存程式內的查詢。 下列 EventSubClass 類型會在預存程式的追蹤中產生。 針對具有 n 個查詢數目的預存程式: n 類型 1 的數目 |
21 | Yes |
IntegerData2 | int | 預存程式內的語句結尾。 預存程式結尾的 -1。 |
55 | Yes |
ObjectID | int | 對象的系統指派標識碼。 | 22 | Yes |
Offset | int | 在預存程式或批次內開始語句的位移。 | 61 | Yes |
SPID | int | 事件發生所在之工作階段的識別碼。 | 12 | Yes |
SqlHandle | image | SQL 句柄,可用來使用 dm_exec_sql_text動態管理檢視來取得預存程式的 SQL 文字。 | 63 | Yes |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | NULL | 1 | Yes |
PlanHandle | image | 預存程式的已編譯計劃計劃句柄。 這可用來使用 sys.dm_exec_query_plan 動態管理檢視來取得 XML 計劃。 | 65 | Yes |
ObjectType | int | 值,表示事件所涉及的物件類型。 8272 = 預存程式 |
28 | Yes |
BigintData2 | bigint | 編譯期間所使用的記憶體總計,以 KB 為單位。 | 53 | Yes |
CPU | int | 在編譯期間花費的總 CPU 時間,以毫秒為單位。 | 18 | Yes |
期間 | int | 編譯期間所花費的時間總計,以微秒為單位。 | 13 | Yes |
IntegerData | int | 已編譯計劃的大小,以 KB 為單位。 | 25 | Yes |
EventSubClass 2
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
BigintData1 | bigint | 此計劃已重新編譯的累計次數。 | 52 | Yes |
BinaryData | image | 已編譯計劃的二進位 XML。 | 2 | Yes |
DatabaseID | int | 如果指定的實例未發出USE database語句,則為USE database語句或預設資料庫所指定的資料庫標識碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 | 3 | Yes |
EventSequence | int | 要求內指定事件的順序。 | 51 | No |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
EventSubClass | int | 事件子類別的類型。 2 = 已編譯臨機操作 SQL 語句內的查詢。 下列 EventSubClass 類型會在特定批次的追蹤中產生。 針對具有 n 個查詢數目的臨機操作批次: n 類型 2 的數目 |
21 | Yes |
IntegerData2 | int | 批次內的語句結尾。 批次結尾的 -1。 |
55 | Yes |
ObjectID | int | N/A | 22 | Yes |
Offset | int | 批次中語句的起始位移。 0 代表批次的開頭。 |
61 | Yes |
SPID | int | 事件發生所在之工作階段的識別碼。 | 12 | Yes |
SqlHandle | image | SQL 句柄。 這可用來使用dm_exec_sql_text動態管理檢視來取得批次 SQL 文字。 | 63 | Yes |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | NULL | 1 | Yes |
PlanHandle | image | 批次之已編譯計劃的計劃句柄。 這可用來使用dm_exec_query_plan動態管理檢視來取得批次 XML 計劃。 | 65 | Yes |
BigintData2 | bigint | 編譯期間所使用的記憶體總計,以 KB 為單位。 | 53 | Yes |
CPU | int | 總 CPU 時間,以微秒為單位,花費在編譯期間。 | 18 | Yes |
期間 | int | 總時間,以毫秒為單位,花費在編譯期間。 | 13 | Yes |
IntegerData | int | 已編譯計劃的大小,以 KB 為單位。 | 25 | Yes |
EventSubClass 3
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
BigintData1 | bigint | 此計劃已重新編譯的累計次數。 | 52 | Yes |
BinaryData | image | NULL | 2 | Yes |
DatabaseID | int | 如果指定的實例未發出USE database語句,則為USE database語句或預設資料庫所指定的資料庫標識碼。 如果在追蹤中擷取到 ServerName 資料行且伺服器可用,SQL Server Profiler 便會顯示資料庫的名稱。 請使用 DB_ID 函數判斷資料庫的值。 | 3 | Yes |
EventSequence | int | 要求內指定事件的順序。 | 51 | No |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
EventSubClass | int | 事件子類別的類型。 3 = 快取查詢已終結,且與計劃相關聯的歷程記錄效能數據即將終結。 追蹤中會產生下列 EventSubClass 類型。 針對具有 n 個查詢數目的臨機操作批次: 從快取排清查詢時,類型為 3 的 1 針對具有 n 個查詢數目的預存程式: 從快取排清查詢時,類型為 3 的 1。 |
21 | Yes |
IntegerData2 | int | 預存程式或批次內的語句結尾。 -1 表示預存程式或批次的結尾。 |
55 | Yes |
ObjectID | int | NULL | 22 | Yes |
Offset | int | 在預存程式或批次內開始語句的位移。 0 表示預存程式或批次的開頭。 |
61 | Yes |
SPID | int | 事件發生所在之工作階段的識別碼。 | 12 | Yes |
SqlHandle | image | SQL 句柄,可用來使用 dm_exec_sql_text動態管理檢視來取得預存程式或批次 SQL 文字。 | 63 | Yes |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | QueryExecutionStats | 1 | Yes |
PlanHandle | image | 預存程式或批次之已編譯計劃的計劃句柄。 這可用來使用dm_exec_query_plan動態管理檢視來取得 XML 計劃。 | 65 | Yes |
GroupID | int | SQL 追蹤事件引發之工作負載群組的標識碼。 | 66 | Yes |
EventSubClass 4
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
BigintData1 | bigint | NULL | 52 | Yes |
BinaryData | image | NULL | 2 | Yes |
DatabaseID | int | 指定預存程式所在的資料庫識別碼。 | 3 | Yes |
EventSequence | int | 要求內指定事件的順序。 | 51 | No |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
EventSubClass | int | 事件子類別的類型。 4 = 快取預存程式已從快取中移除,且與快取相關聯的歷程記錄效能數據即將終結。 |
21 | Yes |
IntegerData2 | int | NULL | 55 | Yes |
ObjectID | int | 預存程式的識別碼。 這與 sys.procedures 中的 object_id 數據行相同。 | 22 | Yes |
Offset | int | NULL | 61 | Yes |
SPID | int | 事件發生所在之工作階段的識別碼。 | 12 | Yes |
SqlHandle | image | SQL 句柄,可用來取得使用 dm_exec_sql_text動態管理檢視執行之預存程式 SQL 文字。 | 63 | Yes |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | ProcedureExecutionStats | 1 | Yes |
PlanHandle | image | 預存程式的已編譯計劃計劃句柄。 這可用來使用dm_exec_query_plan動態管理檢視來取得 XML 計劃。 | 65 | Yes |
GroupID | int | SQL 追蹤事件引發之工作負載群組的標識碼。 | 66 | Yes |
EventSubClass 5
數據行名稱 | 資料類型 | 描述 | 資料行識別碼 | 可篩選 |
---|---|---|---|---|
BigintData1 | bigint | NULL | 52 | Yes |
BinaryData | image | NULL | 2 | Yes |
DatabaseID | int | 指定觸發程式所在的資料庫識別碼。 | 3 | Yes |
EventSequence | int | 要求內指定事件的順序。 | 51 | No |
SessionLoginName | nvarchar | 產生工作階段之使用者的登入名稱。 例如,如果您使用Login1連接到SQL Server,並以Login2的形式執行語句,SessionLoginName 會顯示Login1,而LoginName 會顯示Login2。 此數據行會顯示 SQL Server 和 Windows 登入。 | 64 | Yes |
EventSubClass | int | 事件子類別的類型。 5 = 快取觸發程式已從快取中移除,且與快取相關聯的歷程記錄效能數據即將終結。 |
21 | Yes |
IntegerData2 | int | NULL | 55 | Yes |
ObjectID | int | 觸發程式的標識碼。 這與 sys.triggers/sys.server_triggers 目錄檢視中的object_id數據行相同。 | 22 | Yes |
Offset | int | NULL | 61 | Yes |
SPID | int | 事件發生所在之工作階段的識別碼。 | 12 | Yes |
SqlHandle | image | SQL 句柄,可用來使用dm_exec_sql_text動態管理檢視來取得觸發程式的 SQL 文字。 | 63 | Yes |
StartTime | datetime | 如果有的話,事件開始的時間。 | 14 | Yes |
TextData | ntext | TriggerExecutionStats | 1 | Yes |
PlanHandle | image | 觸發程式的已編譯計劃計劃句柄。 這可用來使用dm_exec_query_plan動態管理檢視來取得 XML 計劃。 | 65 | Yes |
GroupID | int | SQL 追蹤事件引發之工作負載群組的標識碼。 | 66 | Yes |
另請參閱
擴充事件
sp_trace_setevent (Transact-SQL)
Showplan XML for Query Compile 事件類別
動態管理檢視和函數 (Transact-SQL)