sys.dm_exec_trigger_stats (Transact-SQL)
Returns aggregate performance statistics for cached triggers. The view contains one row per trigger, and the lifetime of the row is as long as the trigger remains cached. When a trigger is removed from the cache, the corresponding row is eliminated from this view. At that time, a Performance Statistics SQL trace event is raised similar to sys.dm_exec_query_stats.
Column name |
Data type |
Description |
---|---|---|
database_id |
int |
Database ID in which the trigger resides. |
object_id |
int |
Object identification number of the trigger. |
type |
char(2) |
Type of the object: TA = Assembly (CLR) trigger TR = SQL trigger |
Type_desc |
nvarchar(60) |
Description of the object type: CLR_TRIGGER SQL_TRIGGER |
sql_handle |
varbinary(64) |
This can be used to correlate with queries in sys.dm_exec_query_stats that were executed from within this trigger. |
plan_handle |
varbinary(64) |
Identifier for the in-memory plan. This identifier is transient and remains constant only while the plan remains in the cache. This value may be used with the sys.dm_exec_cached_plans dynamic management view. |
cached_time |
datetime |
Time at which the trigger was added to the cache. |
last_execution_time |
datetime |
Last time at which the trigger was executed. |
execution_count |
bigint |
Number of times that the trigger has been executed since it was last compiled. |
total_worker_time |
bigint |
Total amount of CPU time, in microseconds, that was consumed by executions of this trigger since it was compiled. |
last_worker_time |
bigint |
CPU time, in microseconds, that was consumed the last time the trigger was executed. |
min_worker_time |
bigint |
Maximum CPU time, in microseconds, that this trigger has ever consumed during a single execution. |
max_worker_time |
bigint |
Maximum CPU time, in microseconds, that this trigger has ever consumed during a single execution. |
total_physical_reads |
bigint |
Total number of physical reads performed by executions of this trigger since it was compiled. |
last_physical_reads |
bigint |
Number of physical reads performed the last time the trigger was executed. |
min_physical_reads |
bigint |
Minimum number of physical reads that this trigger has ever performed during a single execution. |
max_physical_reads |
bigint |
Maximum number of physical reads that this trigger has ever performed during a single execution. |
total_logical_writes |
bigint |
Total number of logical writes performed by executions of this trigger since it was compiled. |
last_logical_writes |
bigint |
Number of logical writes performed the last time the trigger was executed. |
min_logical_writes |
bigint |
Minimum number of logical writes that this trigger has ever performed during a single execution. |
max_logical_writes |
bigint |
Maximum number of logical writes that this trigger has ever performed during a single execution. |
total_logical_reads |
bigint |
Total number of logical reads performed by executions of this trigger since it was compiled. |
last_logical_reads |
bigint |
Number of logical reads performed the last time the trigger was executed. |
min_logical_reads |
bigint |
Minimum number of logical reads that this trigger has ever performed during a single execution. |
max_logical_reads |
bigint |
Maximum number of logical reads that this trigger has ever performed during a single execution. |
total_elapsed_time |
bigint |
Total elapsed time, in microseconds, for completed executions of this trigger. |
last_elapsed_time |
bigint |
Elapsed time, in microseconds, for the most recently completed execution of this trigger. |
min_elapsed_time |
bigint |
Minimum elapsed time, in microseconds, for any completed execution of this trigger. |
max_elapsed_time |
bigint |
Maximum elapsed time, in microseconds, for any completed execution of this trigger. |
Permissions
Requires VIEW SERVER STATE permission on server.
Remarks
Statistics in the view are updated when a query is completed.
Examples
The following example returns information about the top five triggers identified by average elapsed time.
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;
See Also