sys.dm_exec_trigger_stats (Transact-SQL)
Restituisce dati statistici aggregati sulle prestazioni dei trigger memorizzati nella cache. La vista contiene una riga per ogni trigger e la durata della riga è uguale al periodo in cui il trigger rimane memorizzato nella cache. Quando un trigger viene rimosso dalla cache, le righe corrispondenti vengono eliminate dalla vista. In quel momento viene generato un evento Perfomance Statistics di Traccia SQL analogo a sys.dm_exec_query_stats.
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
database_id |
int |
ID del database in cui è contenuto il trigger. |
object_id |
int |
Numero di identificazione del trigger. |
type |
char(2) |
Tipo dell'oggetto: TA = trigger di assembly (CLR) TR = trigger SQL |
Type_desc |
nvarchar(60) |
Descrizione del tipo di oggetto: CLR_TRIGGER SQL_TRIGGER |
sql_handle |
varbinary(64) |
Può essere utilizzato per la corrispondenza con le query in sys.dm_exec_query_stats eseguite dall'interno del trigger. |
plan_handle |
varbinary(64) |
Identificatore del piano in memoria. Si tratta di un identificatore temporaneo, che rimane costante solo se il piano rimane nella cache. Questo valore può essere utilizzato con la vista a gestione dinamica sys.dm_exec_cached_plans. |
cached_time |
datetime |
Ora in cui il trigger è stato aggiunto alla cache. |
last_execution_time |
datetime |
Ora dell'ultima esecuzione del trigger. |
execution_count |
bigint |
Numero di esecuzioni del trigger a partire dall'ultima compilazione. |
total_worker_time |
bigint |
Quantità totale di tempo CPU, in microsecondi, utilizzato dalle esecuzioni del trigger a partire dalla relativa compilazione. |
last_worker_time |
bigint |
Tempo di CPU, in microsecondi, utilizzato durante l'ultima esecuzione del trigger. |
min_worker_time |
bigint |
Tempo massimo di CPU, in microsecondi, utilizzato dal trigger durante una singola esecuzione. |
max_worker_time |
bigint |
Tempo massimo di CPU, in microsecondi, utilizzato dal trigger durante una singola esecuzione. |
total_physical_reads |
bigint |
Numero totale di letture fisiche effettuate dalle esecuzioni del trigger a partire dalla relativa compilazione. |
last_physical_reads |
bigint |
Numero di letture fisiche eseguite durante l'ultima esecuzione del trigger. |
min_physical_reads |
bigint |
Numero minimo di letture fisiche effettuate dal trigger durante una singola esecuzione. |
max_physical_reads |
bigint |
Numero massimo di letture fisiche effettuate dal trigger durante una singola esecuzione. |
total_logical_writes |
bigint |
Numero totale di letture logiche effettuate dalle esecuzioni del trigger a partire dalla relativa compilazione. |
last_logical_writes |
bigint |
Numero di letture logiche effettuate durante l'ultima esecuzione del trigger. |
min_logical_writes |
bigint |
Numero minimo di scritture logiche effettuate dal trigger durante una singola esecuzione. |
max_logical_writes |
bigint |
Numero massimo di scritture logiche effettuate dal trigger durante una singola esecuzione. |
total_logical_reads |
bigint |
Numero totale di scritture logiche effettuate dalle esecuzioni del trigger a partire dalla relativa compilazione. |
last_logical_reads |
bigint |
Numero di letture logiche eseguite durante l'ultima esecuzione del trigger. |
min_logical_reads |
bigint |
Numero minimo di letture logiche effettuate dal trigger durante una singola esecuzione. |
max_logical_reads |
bigint |
Numero massimo di letture logiche effettuate dal trigger durante una singola esecuzione. |
total_elapsed_time |
bigint |
Tempo totale trascorso, in microsecondi, per le esecuzioni complete del trigger. |
last_elapsed_time |
bigint |
Tempo trascorso, in microsecondi, per l'ultima esecuzione completata del trigger. |
min_elapsed_time |
bigint |
Tempo minimo trascorso, in microsecondi, per qualsiasi esecuzione completata del trigger. |
max_elapsed_time |
bigint |
Tempo massimo trascorso, in microsecondi, per qualsiasi esecuzione completata del trigger. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Osservazioni
Le statistiche nella vista vengono aggiornate quando viene completata una query.
Esempi
Nell'esempio seguente vengono restituite informazioni sui primi cinque trigger identificati in base al tempo medio trascorso.
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;
Vedere anche