Condividi tramite


sys.dm_exec_query_stats

Data aggiornamento: 12 dicembre 2006

Restituisce dati statistici aggregati sulle prestazioni dei piani di query memorizzati nella cache. La vista contiene una riga per ogni istruzione di query nel piano memorizzato nella cache e la durata delle righe è legata al piano stesso. Quando un piano viene rimosso dalla cache, le righe corrispondenti vengono eliminate da questa vista.

[!NOTA] Se sul server è attualmente in esecuzione un carico di lavoro, è possibile che una query iniziale di sys.dm_exec_query_stats generi risultati non accurati. La riesecuzione della query può garantire risultati più accurati.

Nome colonna Tipo di dati Descrizione

sql_handle

varbinary(64)

Token che fa riferimento al batch o alla stored procedure di cui fa parte la query.

È possibile utilizzare sql_handle, insieme a statement_start_offset e statement_end_offset, per recuperare il testo SQL della query chiamando la funzione a gestione dinamica sys.dm_exec_sql_text.

statement_start_offset

int

Indica, in byte e a partire da 0, la posizione iniziale della query descritta dalla riga all'interno del testo del batch o dell'oggetto persistente.

statement_end_offset

int

Indica, in byte e a partire da 0, la posizione finale della query descritta dalla riga all'interno del testo del batch o dell'oggetto persistente. Il valore -1 indica la fine del batch.

plan_generation_num

bigint

Numero di sequenza utilizzabile per distinguere le istanze dei piani dopo una ricompilazione.

plan_handle

varbinary(64)

Token che fa riferimento al piano compilato di cui fa parte la query. È possibile passare questo valore alla funzione a gestione dinamica sys.dm_exec_query_plan per ottenere il piano di query.

creation_time

datetime

Ora di compilazione del piano.

last_execution_time

datetime

Ora dell'ultima esecuzione del piano.

execution_count

bigint

Numero di esecuzioni del piano a partire dall'ultima compilazione.

total_worker_time

bigint

Quantità totale di tempo CPU, in microsecondi, utilizzato dalle esecuzioni del piano a partire dalla relativa compilazione.

last_worker_time

bigint

Tempo di CPU, in microsecondi, utilizzato durante l'ultima esecuzione del piano.

min_worker_time

bigint

Tempo minimo di CPU, in microsecondi, utilizzato dal piano durante una singola esecuzione.

max_worker_time

bigint

Tempo massimo di CPU, in microsecondi, utilizzato dal piano durante una singola esecuzione.

total_physical_reads

bigint

Numero totale di letture fisiche effettuate dalle esecuzioni del piano a partire dalla relativa compilazione.

last_physical_reads

bigint

Numero di letture fisiche eseguite durante l'ultima esecuzione del piano.

min_physical_reads

bigint

Numero minimo di letture fisiche effettuate dal piano durante una singola esecuzione.

max_physical_reads

bigint

Numero massimo di letture fisiche effettuate dal piano durante una singola esecuzione.

total_logical_writes

bigint

Numero totale di letture logiche effettuate dalle esecuzioni del piano a partire dalla relativa compilazione.

last_logical_writes

bigint

Numero di letture logiche effettuate durante l'ultima esecuzione del piano.

min_logical_writes

bigint

Numero minimo di scritture logiche effettuate dal piano durante una singola esecuzione.

max_logical_writes

bigint

Numero massimo di scritture logiche effettuate dal piano durante una singola esecuzione.

total_logical_reads

bigint

Numero totale di letture logiche effettuate dalle esecuzioni del piano a partire dalla sua compilazione.

last_logical_reads

bigint

Numero di letture logiche effettuate durante l'ultima esecuzione del piano.

min_logical_reads

bigint

Numero minimo di letture logiche effettuate dal piano durante una singola esecuzione.

max_logical_reads

bigint

Numero massimo di letture logiche effettuate dal piano durante una singola esecuzione.

total_clr_time

bigint

Tempo, in microsecondi, utilizzato dalle esecuzioni del piano all'interno di oggetti CLR (Common Language Runtime) Microsoft .NET Framework a partire dalla relativa compilazione. Gli oggetti CLR possono essere stored procedure, funzioni, trigger, tipi e aggregati.

last_clr_time

bigint

Tempo utilizzato dall'esecuzione all'interno di oggetti CLR .NET Framework durante l'ultima esecuzione del piano. Gli oggetti CLR possono essere stored procedure, funzioni, trigger, tipi e aggregati.

min_clr_time

bigint

Tempo minimo, in microsecondi, utilizzato dal piano all'interno di oggetti CLR .NET Framework durante una singola esecuzione. Gli oggetti CLR possono essere stored procedure, funzioni, trigger, tipi e aggregati.

max_clr_time

bigint

Tempo massimo, in microsecondi, utilizzato dal piano all'interno di CLR .NET Framework durante una singola esecuzione. Gli oggetti CLR possono essere stored procedure, funzioni, trigger, tipi e aggregati.

total_elapsed_time

bigint

Tempo totale trascorso, in microsecondi, per le esecuzioni complete del piano.

last_elapsed_time

bigint

Tempo trascorso, in microsecondi, per l'ultima esecuzione completata del piano.

min_elapsed_time

bigint

Tempo minimo trascorso, in microsecondi, per qualsiasi esecuzione completata del piano.

max_elapsed_time

bigint

Tempo massimo trascorso, in microsecondi, per qualsiasi esecuzione completata del piano.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

Osservazioni

Le statistiche nella vista vengono aggiornate quando viene completata una query.

Esempi

Nell'esempio seguente vengono restituite informazioni sulle prime cinque query in base al tempo medio CLR.

SELECT TOP 5 creation_time, last_execution_time, total_clr_time,
    total_clr_time/execution_count AS [Avg CLR Time], last_clr_time,
    execution_count, 
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
    ((CASE statement_end_offset 
        WHEN -1 THEN DATALENGTH(st.text)
        ELSE qs.statement_end_offset END 
            - qs.statement_start_offset)/2) + 1) as statement_text
FROM sys.dm_exec_query_stats as qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as st
ORDER BY total_clr_time/execution_count DESC;
GO

Vedere anche

Riferimento

Funzioni e viste a gestione dinamica
Funzioni e viste a gestione dinamica relative all'esecuzione
sys.dm_exec_sql_text
sys.dm_exec_query_plan

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Contenuto modificato:
  • Correzione delle definizioni delle colonne sql_handle, plan_generation_num e plan_handle.

14 aprile 2006

Contenuto modificato:
  • Correzione dell'esempio.

5 dicembre 2005

Nuovo contenuto
  • Aggiunta di una nota sulla necessità di eseguire più volte query su questa vista a gestione dinamica per ottenere risultati più accurati, se sul server è attualmente in esecuzione un carico di lavoro.
  • Aggiunta di una spiegazione del fatto che le colonne statement_end_offset e statement_start_offset sono in base zero e che il valore -1 nella colonna statement_end_offset indica la fine del batch.