Condividi tramite


sys.dm_exec_trigger_stats (Transact-SQL)

Vengono restituiti dati statistici aggregati sulle prestazioni dei trigger memorizzati nella cache. Nella vista è inclusa 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 dieci trigger in cui viene utilizzata la CPU ordinati in base al tempo medio trascorso.

PRINT '--top 10 CPU consuming triggers '

SELECT TOP 10 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;

Cronologia modifiche

Contenuto aggiornato

Sostituzione dell'esempio con codice aggiornato.