sys.dm_exec_trigger_stats (Transact-SQL)
Si applica a: SQL Server database SQL di Azure Istanza gestita di 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. In quel momento, viene generato un evento di Analisi SQL delle statistiche delle prestazioni simile a sys.dm_exec_query_stats.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
database_id | int | ID del database in cui è contenuto il trigger. In database SQL di Azure i valori sono univoci all'interno di un database singolo o di un pool elastico, ma non all'interno di un server logico. |
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 con 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 visualizzazione a gestione dinamica (DMV). |
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 dall'ultima compilazione. |
total_worker_time | bigint | Quantità totale di tempo 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, che questo trigger ha mai utilizzato durante una singola esecuzione. |
max_worker_time | bigint | Tempo massimo di CPU, in microsecondi, che questo trigger ha mai utilizzato durante una singola esecuzione. |
total_physical_reads | bigint | Numero totale di letture fisiche eseguite dalle esecuzioni di questo trigger dopo la compilazione. |
last_physical_reads | bigint | Numero di letture fisiche eseguite l'ultima volta che è stato eseguito il trigger. |
min_physical_reads | bigint | Numero minimo di letture fisiche eseguite da questo trigger durante una singola esecuzione. |
max_physical_reads | bigint | Numero massimo di letture fisiche eseguite da questo trigger durante una singola esecuzione. |
total_logical_writes | bigint | Numero totale di scritture logiche eseguite dalle esecuzioni di questo trigger dopo la compilazione. |
last_logical_writes | bigint | Numero di scritture logiche eseguite l'ultima volta che è stato eseguito il trigger. |
min_logical_writes | bigint | Numero minimo di scritture logiche eseguite da questo trigger durante una singola esecuzione. |
max_logical_writes | bigint | Numero massimo di scritture logiche eseguite da questo trigger durante una singola esecuzione. |
total_logical_reads | bigint | Numero totale di letture logiche eseguite dalle esecuzioni di questo trigger dopo la compilazione. |
last_logical_reads | bigint | Numero di letture logiche eseguite l'ultima volta che è stato eseguito il trigger. |
min_logical_reads | bigint | Numero minimo di letture logiche eseguite da questo trigger durante una singola esecuzione. |
max_logical_reads | bigint | Numero massimo di letture logiche eseguite da questo trigger durante una singola esecuzione. |
total_elapsed_time | bigint | Tempo trascorso totale, 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 distribuite 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 distribuite 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 questo trigger ha mai s spillato durante una singola esecuzione. Si applica a: a partire da SQL Server 2017 (14.x) CU3 |
max_spills | bigint | Numero massimo di pagine che questo trigger ha mai s spillato durante una singola esecuzione. Si applica a: a partire da SQL Server 2017 (14.x) CU3 |
total_page_server_reads | bigint | Numero totale di letture 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 letture 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 | Il numero minimo di server di pagine legge che questo trigger ha mai eseguito durante una singola esecuzione. Si applica a: database SQL di Azure Hyperscale |
max_page_server_reads | bigint | Il numero massimo di server di pagine legge che questo trigger ha mai eseguito durante una singola esecuzione. Si applica a: database SQL di Azure Hyperscale |
Osservazioni:
In database SQL, le viste a gestione dinamica non possono esporre informazioni che potrebbero influire sul contenimento del database o esporre informazioni su altri database a cui l'utente ha accesso. Per evitare di esporre queste informazioni, ogni riga contenente 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 Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE
.
In database SQL obiettivi di servizio Basic, S0 e S1 e per i database nei pool elastici, è necessario l'account amministratore del server, l'account amministratore di Microsoft Entra o l'appartenenza al ruolo del ##MS_ServerStateReader##
server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE
per il database o l'adesione ruolo del server ##MS_ServerStateReader##
.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.
Esempi
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;
Vedi anche
Funzioni e viste a gestione dinamica relative 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)