sys.dm_exec_trigger_stats (Transact-SQL)
Si applica a: SQL Server (tutte le versioni supportate)
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)