sys.dm_exec_trigger_stats (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure

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. A questo punto, viene generato un evento di traccia SQL di Performance Statistics simile 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 usato per correlare le query in sys.dm_exec_query_stats eseguite dall'interno di questo 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 usato con la sys.dm_exec_cached_plans a gestione dinamica.
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 volte in cui il trigger è stato eseguito dall'ultima compilazione.
total_worker_time bigint Quantità totale di tempo della CPU, in microsecondi, utilizzata dalle esecuzioni di questo trigger dopo la 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 da questo trigger durante una singola esecuzione.
max_worker_time bigint Tempo massimo di CPU, in microsecondi, utilizzato da questo trigger durante una singola esecuzione.
total_physical_reads bigint Numero totale di operazioni di lettura fisiche eseguite dalle esecuzioni di questo trigger dalla compilazione.
last_physical_reads bigint Numero di operazioni di lettura fisiche eseguite l'ultima volta in cui è stato eseguito il trigger.
min_physical_reads bigint Numero minimo di operazioni di lettura fisiche eseguite dal trigger durante una singola esecuzione.
max_physical_reads bigint Numero massimo di operazioni di lettura fisiche eseguite dal trigger durante una singola esecuzione.
total_logical_writes bigint Numero totale di scritture logiche eseguite dalle esecuzioni di questo trigger dalla compilazione.
last_logical_writes bigint Numero di scritture logiche eseguite l'ultima volta in cui è stato eseguito il trigger.
min_logical_writes bigint Numero minimo di scritture logiche eseguite dal trigger durante una singola esecuzione.
max_logical_writes bigint Numero massimo di scritture logiche eseguite dal trigger durante una singola esecuzione.
total_logical_reads bigint Numero totale di operazioni di lettura logiche eseguite dalle esecuzioni di questo trigger dalla compilazione.
last_logical_reads bigint Numero di operazioni di lettura logiche eseguite l'ultima volta in cui è stato eseguito il trigger.
min_logical_reads bigint Numero minimo di operazioni di lettura logiche eseguite dal trigger durante una singola esecuzione.
max_logical_reads bigint Numero massimo di operazioni di lettura logiche eseguite dal trigger durante una singola esecuzione.
total_elapsed_time bigint Tempo totale trascorso, in microsecondi, per le esecuzioni completate di questo 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 di questo trigger.
max_elapsed_time bigint Tempo massimo trascorso, in microsecondi, per qualsiasi esecuzione completata di questo trigger.
total_spills bigint Numero totale di pagine versate dall'esecuzione di questo trigger dopo la compilazione.

Si applica a: a partire da SQL Server 2017 (14.x) CU3
last_spills bigint Numero di pagine che si sono rovesciate l'ultima volta che è stato eseguito il trigger.

Si applica a: a partire da SQL Server 2017 (14.x) CU3
min_spills bigint Numero minimo di pagine che il trigger ha mai versato durante una singola esecuzione.

Si applica a: a partire da SQL Server 2017 (14.x) CU3
max_spills bigint Numero massimo di pagine che il trigger ha mai generato durante una singola esecuzione.

Si applica a: a partire da SQL Server 2017 (14.x) CU3
total_page_server_reads bigint Numero totale di operazioni di lettura del server di pagine eseguite dalle esecuzioni di questo trigger dopo la compilazione.

Si applica a: database SQL di Azure Hyperscale
last_page_server_reads bigint Numero di operazioni di lettura del server di pagine eseguite l'ultima volta che è stato eseguito il trigger.

Si applica a: database SQL di Azure Hyperscale
min_page_server_reads bigint Numero minimo di operazioni di lettura del server di pagine eseguite da questo trigger durante una singola esecuzione.

Si applica a: database SQL di Azure Hyperscale
max_page_server_reads bigint Numero massimo di operazioni di lettura del server di pagine eseguite da questo trigger durante una singola esecuzione.

Si applica a: database SQL di Azure Hyperscale

Commenti

In Database SQL, le viste a gestione dinamica non possono esporre le informazioni che influenzerebbero l'indipendenza del database o le informazioni sugli altri database a cui l'utente dispone di accesso. Per evitare di esporre queste informazioni, ogni riga che contiene dati che non appartengono al tenant connesso viene filtrata.

Le statistiche nella vista vengono aggiornate quando viene completata una query.

Autorizzazioni

In SQL Server e in SQL Istanza gestita richiede l'autorizzazione VIEW SERVER STATE .

Negli database SQL di servizio Basic, S0 e S1 e per i database nei pool elastici è necessario l'account amministratore del server, l'account ##MS_ServerStateReader## amministratore di Azure Active Directory o l'appartenenza al ruolo del server. In tutti gli database SQL obiettivi di servizio è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'appartenenza al ##MS_ServerStateReader## ruolo del server.

Esempio

Nell'esempio seguente vengono restituite informazioni sui primi cinque trigger identificati in base al tempo medio trascorso.

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

Funzioni e viste a gestione dinamica correlate all'esecuzione (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_procedure_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)