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, la riga corrispondente viene elimina dalla vista. A questo punto viene generato un evento Statistiche recenti sulle prestazioni di Traccia SQL analogo a sys.dm_exec_query_stats.

In Database SQL di Windows Azure, 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 esclusa tramite filtro.

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.

Si applica a: SQL Server (da SQL Server 2008 alla versione corrente), Database SQL di Windows Azure (dalla versione iniziale alla versione corrente).

Nome colonna

Tipo di dati

Descrizione

database_id

int

ID del database in cui è contenuta la stored procedure.

object_id

int

Numero di identificazione dell'oggetto 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 DMV sys.dm_exec_cached_plans.

È sempre 0x000 quando una stored procedure compilata in modo nativo esegue una query su una tabella con ottimizzazione per la memoria.

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 di CPU, in microsecondi, utilizzato dalle esecuzioni della stored procedure a partire dalla relativa compilazione.

Per le stored procedure compilate in modo nativo, il valore di total_worker_time non può essere accurato se più esecuzioni richiedono meno di 1 millisecondo.

last_worker_time

bigint

Tempo di CPU, in microsecondi, utilizzato durante l'ultima esecuzione della stored procedure. 1

min_worker_time

bigint

Tempo minimo di CPU, in microsecondi, utilizzato dalla stored procedure durante una singola esecuzione. 1

max_worker_time

bigint

Tempo massimo di CPU, in microsecondi, utilizzato dalla stored procedure durante una singola esecuzione. 1

total_physical_reads

bigint

Numero totale di letture fisiche effettuate dalle esecuzioni della stored procedure a partire dalla relativa compilazione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

last_physical_reads

bigint

Numero di letture fisiche effettuate durante l'ultima esecuzione della stored procedure.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

min_physical_reads

bigint

Numero minimo di letture fisiche effettuate dalla stored procedure durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

max_physical_reads

bigint

Numero massimo di letture fisiche effettuate dalla stored procedure durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

total_logical_writes

bigint

Numero totale di scritture logiche effettuate dalle esecuzioni della stored procedure a partire dalla relativa compilazione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

last_logical_writes

bigint

Numero del numero di pagine del pool di buffer diventate dirty durante l'ultima esecuzione del piano. Se una pagina è già dirty (modificata) le scritture non vengono conteggiate.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

min_logical_writes

bigint

Numero minimo di scritture logiche effettuate dalla stored procedure durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

max_logical_writes

bigint

Numero massimo di scritture logiche effettuate dalla stored procedure durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

total_logical_reads

bigint

Numero totale di letture logiche effettuate dalle esecuzioni della stored procedure a partire dalla relativa compilazione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

last_logical_reads

bigint

Numero di letture logiche effettuate durante l'ultima esecuzione della stored procedure.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

min_logical_reads

bigint

Numero minimo di letture logiche effettuate dalla stored procedure durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

max_logical_reads

bigint

Numero massimo di letture logiche effettuate dalla stored procedure durante una singola esecuzione.

È sempre 0 con esecuzione di query su una tabella con ottimizzazione per la memoria.

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.

1 Quando la raccolta delle statistiche è abilitata, per le stored procedure compilate in modo nativo il tempo del processo viene raccolto in millisecondi. Se la query viene eseguita in meno di un millisecondo, il valore sarà 0.

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;

Vedere anche

Riferimento

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)

Funzioni e viste a gestione dinamica (Transact-SQL)

sys.dm_exec_trigger_stats (Transact-SQL)