Condividi tramite


OGGETTO SQL Server, STATISTICHE SQL

Si applica a: SQL Server

L'oggetto SQLServer:SQL Statistics in SQL Server fornisce contatori per monitorare la compilazione e il tipo di richieste inviate a un'istanza di SQL Server. Il monitoraggio del numero di compilazioni di query e ricompilazione e del numero di batch ricevuti da un'istanza di SQL Server offre un'indicazione della velocità con cui SQL Server elabora le query utente e di quanto sia efficace l'elaborazione delle query da parte di Query Optimizer.

La compilazione rappresenta un aspetto fondamentale del processo di elaborazione delle query. Per risparmiare il costo di compilazione, il motore di database salva il piano di query compilato in una cache di query. Ciò consente di limitare le operazioni di compilazione e di riutilizzare le query in un momento successivo senza doverle ricompilare. Ogni query tuttavia deve essere compilata almeno una volta. Le ricompilazioni delle query possono essere causate dai seguenti fattori:

  • Modifiche di schema, incluse le modifiche allo schema di base, ad esempio l'aggiunta di colonne o indici a una tabella, e modifiche allo schema delle statistiche, ad esempio l'inserimento o l'eliminazione di un numero significativo di righe in una tabella.

  • Modifiche all'ambiente (istruzione SET). Modifiche alle impostazioni di sessione, ad esempio ANSI_PADDING o ANSI_NULLS.

Per altre informazioni sulla parametrizzazione semplice e forzata, vedere ALTER DATABASE (Transact-SQL).

Questi sono i contatori delle statistiche SQL di SQL Server.

Contatori dell'oggetto SQL Statistics Descrizione
Tentativi parametrizzazioni automatiche/sec Numero di tentativi di parametrizzazione automatica al secondo. Il totale deve corrispondere alla somma delle parametrizzazioni automatiche non riuscite, sicure e non sicure. La parametrizzazione automatica si verifica quando un'istanza di SQL Server tenta di parametrizzare una richiesta Transact-SQL sostituendo alcuni valori letterali con parametri in modo che sia possibile riutilizzare il piano di esecuzione memorizzato nella cache risultante in più richieste simili. Le parametriizzazioni automatica sono note anche come parametrizzazione semplici nelle versioni più recenti di SQL Server. Sono escluse le parametrizzazioni forzate.
Richieste batch/sec Numero di batch di comandi Transact-SQL ricevuti al secondo. Il valore dipende da tutti i vincoli (I/O, numero di utenti, dimensioni della cache, complessità delle richieste e così via). Un valore elevato indica una velocità effettiva ottimale.
Parametrizzazioni automatiche non riuscite/sec Numero di tentativi di parametrizzazione automatica non riusciti al secondo. Il valore dovrebbe essere basso. Le parametriizzazioni automatica sono note anche come parametrizzazione semplici nelle versioni successive di SQL Server.
Parametrizzazioni forzate/sec Numero di parametrizzazioni forzate riuscite al secondo.
Esecuzioni piani guidate al secondo Numero di esecuzioni del piano al secondo in cui il piano di query è stato generato utilizzando una guida di piano.
Esecuzioni piani non guidate al secondo Numero di esecuzioni del piano al secondo in cui non è stato possibile applicare una guida di piano durante la generazione del piano. La guida di piano viene ignorata e viene utilizzata la compilazione normale per generare il piano eseguito.
Parametrizzazioni automatiche sicure/sec Numero di tentativi di parametrizzazione automatica sicura al secondo. Safe fa riferimento a una determinazione che un piano di esecuzione memorizzato nella cache può essere condiviso tra istruzioni Transact-SQL simili simili. SQL Server esegue molti tentativi di parametrizzazione automatica alcuni dei quali si rivelano sicuri e altri hanno esito negativo. Le parametriizzazioni automatica sono note anche come parametrizzazione semplici nelle versioni successive di SQL Server. Sono escluse le parametrizzazioni forzate.
Frequenza situazioni di attenzione SQL Numero di situazioni di attenzione al secondo. Una situazione di attenzione corrisponde a una richiesta di interruzione della richiesta corrente inviata dal client.
Compilazioni SQL/sec Numero di compilazioni SQL al secondo. Indica il numero di immissioni del percorso del codice di compilazione. Include le compilazioni causate dalle ricompilazione a livello di istruzione in SQL Server. Dopo che l'attività utente di SQL Server è stabile, questo valore raggiunge uno stato stabile.
Ricompilazioni SQL/sec Numero di ricompilazioni di istruzioni al secondo. Esegue il conteggio del numero di volte in cui vengono attivate ricompilazioni di istruzioni. In generale, il numero di ricompilazioni deve essere basso.
Parametrizzazioni automatiche non sicure/sec Numero di tentativi di parametrizzazione automatica non sicure al secondo. Ad esempio, le parametrizzazioni automatiche eseguite quando la query presenta caratteristiche che impediscono la condivisione del piano memorizzato nella cache sono definite non sicure. Sono escluse le parametrizzazioni forzate.

Esempio

Si inizia a esplorare i contatori delle prestazioni delle query in questo oggetto usando questa query T-SQL nella vista a gestione dinamica sys.dm_os_performance_counters :

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%SQL Statistics%';