Condividi tramite


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