sys.dm_exec_trigger_stats (Transact-SQL)
傳回快取觸發程序的彙總效能統計資料。此檢視表會針對每個觸發程序包含一個資料列,而且資料列的存留期間與觸發程序維持快取狀態的時間一樣長。從快取中移除觸發程序時,對應的資料列也會從這個檢視表中刪除。此時,就會引發效能統計資料 SQL 追蹤事件 (與 sys.dm_exec_query_stats 很相似)。
資料行名稱 |
資料類型 |
說明 |
---|---|---|
database_id |
int |
觸發程序所在的資料庫識別碼。 |
object_id |
int |
觸發程序的物件識別碼。 |
型別 |
char(2) |
物件的類型: TA = 組件 (CLR) 觸發程序 TR = SQL 觸發程序 |
Type_desc |
nvarchar(60) |
物件類型的描述: CLR_TRIGGER SQL_TRIGGER |
sql_handle |
varbinary(64) |
這可用來與 sys.dm_exec_query_stats 中從這個觸發程序內部執行的查詢相互關聯。 |
plan_handle |
varbinary(64) |
記憶體中計畫的識別碼。這個識別碼是暫時性的,只有當計畫留在快取時才會保留。這個值可以與 sys.dm_exec_cached_plans 動態管理檢視一起使用。 |
cached_time |
datetime |
在快取中加入觸發程序的時間。 |
last_execution_time |
datetime |
上次執行觸發程序的時間。 |
execution_count |
bigint |
觸發程序從上次編譯以來被執行的次數。 |
total_worker_time |
bigint |
這個觸發程序從編譯以來執行所耗用的 CPU 時間總量 (以微秒為單位)。 |
last_worker_time |
bigint |
觸發程序上次執行所耗用的 CPU 時間 (以微秒為單位)。 |
min_worker_time |
bigint |
這個觸發程序在單次執行期間曾耗用的最大 CPU 時間 (以微秒為單位)。 |
max_worker_time |
bigint |
這個觸發程序在單次執行期間曾耗用的最大 CPU 時間 (以微秒為單位)。 |
total_physical_reads |
bigint |
這個觸發程序在編譯以來執行所執行的實體讀取總數。 |
last_physical_reads |
bigint |
觸發程序上次執行所執行的實體讀取數。 |
min_physical_reads |
bigint |
這個觸發程序在單次期間曾執行的最小實體讀取數。 |
max_physical_reads |
bigint |
這個觸發程序在單次期間曾執行的最大實體讀取數。 |
total_logical_writes |
bigint |
這個觸發程序在編譯以來執行所執行的邏輯寫入總數。 |
last_logical_writes |
bigint |
觸發程序上次執行所執行的邏輯寫入數。 |
min_logical_writes |
bigint |
這個觸發程序在單次執行期間曾執行的最小邏輯寫入數。 |
max_logical_writes |
bigint |
這個觸發程序在單次執行期間曾執行的最大邏輯寫入數。 |
total_logical_reads |
bigint |
這個觸發程序在編譯以來執行所執行的邏輯讀取總數。 |
last_logical_reads |
bigint |
觸發程序上次執行所執行的邏輯讀取數。 |
min_logical_reads |
bigint |
這個觸發程序在單次期間曾執行的最小邏輯讀取數。 |
max_logical_reads |
bigint |
這個觸發程序在單次期間曾執行的最大邏輯讀取數。 |
total_elapsed_time |
bigint |
這個觸發程序完成執行經歷的總時間 (以微秒為單位)。 |
last_elapsed_time |
bigint |
這個觸發程序最近完成執行經歷的時間 (以微秒為單位)。 |
min_elapsed_time |
bigint |
這個觸發程序完成執行經歷的最小時間 (以微秒為單位)。 |
max_elapsed_time |
bigint |
這個觸發程序完成執行經歷的最大時間 (以微秒為單位)。 |
權限
需要伺服器的 VIEW SERVER STATE 權限。
備註
完成查詢時,會更新檢視中的統計資料。
範例
下列範例會傳回平均經過時間所識別之前五項觸發程序的相關資訊。
PRINT '--top 5 CPU consuming triggers ';
SELECT TOP 5 d.object_id, d.database_id, DB_NAME(database_id) AS 'database_name',
OBJECT_NAME(object_id, database_id) AS 'trigger_name', d.cached_time,
d.last_execution_time, d.total_elapsed_time,
d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],
d.last_elapsed_time, d.execution_count
FROM sys.dm_exec_trigger_stats AS d
ORDER BY [total_worker_time] DESC;