sys.dm_exec_procedure_stats (Transact-SQL)
Restituisce dati statistici aggregati sulle prestazioni delle stored procedure memorizzate nella cache. La vista restituisce una riga per ogni piano di stored procedure memorizzato nella cache e la durata della riga è uguale al periodo in cui la stored procedure rimane memorizzata nella cache. Quando una stored procedure viene rimossa 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.
Nota
Se sul server è attualmente in esecuzione un carico di lavoro, è possibile che una query iniziale di sys.dm_exec_procedure_stats generi risultati non accurati. La riesecuzione della query può garantire risultati più accurati.
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
database_id |
int |
ID del database in cui è contenuta la stored procedure. |
object_id |
int |
Numero di identificazione della stored procedure. |
type |
char(2) |
Tipo dell'oggetto: P = stored procedure SQL PC = stored procedure assembly (CLR) X = stored procedure estesa |
type_desc |
nvarchar(60) |
Descrizione del tipo di oggetto: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
sql_handle |
varbinary(64) |
Può essere utilizzato per la corrispondenza con le query in sys.dm_exec_query_stats eseguite dall'interno della stored procedure. |
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 la stored procedure è stata aggiunta alla cache. |
cached_time |
datetime |
Ora in cui la stored procedure è stata aggiunta alla cache. |
last_execution_time |
datetime |
Ora dell'ultima esecuzione della stored procedure. |
execution_count |
bigint |
Numero di esecuzioni della stored procedure a partire dall'ultima compilazione. |
total_worker_time |
bigint |
Quantità totale di tempo CPU, in microsecondi, utilizzato dalle esecuzioni della stored procedure a partire dalla relativa compilazione. |
last_worker_time |
bigint |
Tempo di CPU, in microsecondi, utilizzato durante l'ultima esecuzione della stored procedure. |
min_worker_time |
bigint |
Tempo massimo di CPU, in microsecondi, utilizzato dalla stored procedure durante una singola esecuzione. |
max_worker_time |
bigint |
Tempo massimo di CPU, in microsecondi, utilizzato dalla stored procedure durante una singola esecuzione. |
total_physical_reads |
bigint |
Numero totale di letture fisiche effettuate dalle esecuzioni della stored procedure a partire dalla relativa compilazione. |
last_physical_reads |
bigint |
Numero di letture fisiche eseguite durante l'ultima esecuzione della stored procedure. |
min_physical_reads |
bigint |
Numero minimo di letture fisiche effettuate dalla stored procedure durante una singola esecuzione. |
max_physical_reads |
bigint |
Numero massimo di letture fisiche effettuate dalla stored procedure durante una singola esecuzione. |
total_logical_writes |
bigint |
Numero totale di scritture logiche effettuate dalle esecuzioni della stored procedure a partire dalla relativa compilazione. |
last_logical_writes |
bigint |
Numero di letture logiche effettuate durante l'ultima esecuzione della stored procedure. |
min_logical_writes |
bigint |
Numero minimo di scritture logiche effettuate dalla stored procedure durante una singola esecuzione. |
max_logical_writes |
bigint |
Numero massimo di scritture logiche effettuate dalla stored procedure durante una singola esecuzione. |
total_logical_reads |
bigint |
Numero totale di letture logiche effettuate dalle esecuzioni della stored procedure a partire dalla relativa compilazione. |
last_logical_reads |
bigint |
Numero di letture logiche eseguite durante l'ultima esecuzione della stored procedure. |
min_logical_reads |
bigint |
Numero minimo di letture logiche effettuate dalla stored procedure durante una singola esecuzione. |
max_logical_reads |
bigint |
Numero massimo di letture logiche effettuate dalla stored procedure durante una singola esecuzione. |
total_elapsed_time |
bigint |
Tempo totale trascorso, in microsecondi, per le esecuzioni complete della stored procedure. |
last_elapsed_time |
bigint |
Tempo trascorso, in microsecondi, per l'ultima esecuzione completata delle stored procedure. |
min_elapsed_time |
bigint |
Tempo minimo trascorso, in microsecondi, per qualsiasi esecuzione completata della stored procedure. |
max_elapsed_time |
bigint |
Tempo massimo trascorso, in microsecondi, per qualsiasi esecuzione completata della stored procedure. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Osservazioni
Le statistiche nella vista vengono aggiornate quando viene completata l'esecuzione della stored procedure.
Esempi
Nell'esempio seguente vengono restituite informazioni sulle prime dieci stored procedure identificate in base al tempo medio trascorso.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc 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_procedure_stats AS d
ORDER BY [total_worker_time] DESC;
GO