Oggetto SQL Statistics di SQL Server

Tramite l'oggetto SQLServer:SQL Statistics di SQL Server sono disponibili contatori per il monitoraggio della compilazione e del tipo di richieste inviate a un'istanza di SQL Server. Il monitoraggio del numero di compilazioni e ricompilazioni di query e del numero di batch ricevuti da un'istanza di SQL Server consente di determinare la velocità di elaborazione delle query utente in SQL Server e l'efficienza di Query Optmizer.

La compilazione rappresenta un aspetto fondamentale del processo di elaborazione delle query. Per ottimizzare la compilazione, in Motore di database il piano di query compilato viene salvato in una cache delle 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 ulteriori informazioni sulla parametrizzazione semplice e forzata, vedere ALTER DATABASE (Transact-SQL) e Parametrizzazione semplice.

Nella tabella seguente sono elencati i contatori dell'oggetto SQL Statistics 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. Una parametrizzazione automatica si verifica quando in un'istanza di SQL Server viene eseguito un tentativo di parametrizzazione di una richiesta Transact-SQL tramite la sostituzione di alcuni valori letterali con parametri in modo da consentire il riutilizzo del piano di esecuzione memorizzato nella cache risultante in più richieste con struttura simile. Si noti che nelle versioni più recenti di SQL Server le parametrizzazioni automatiche sono note anche come parametrizzazioni semplici. 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. Si noti che nelle versioni più recenti di SQL Server le parametrizzazioni automatiche sono denominate anche parametrizzazioni semplici.

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. L'aggettivo sicura indica la possibilità di condivisione di un piano di esecuzione memorizzato in memoria tra più istruzioni Transact-SQL con struttura simile. In SQL Server vengono eseguiti molti tentativi di parametrizzazione automatica. Alcune parametrezzazioni risultano sicure, mentre altre hanno esito negativo. Si noti che nelle versioni più recenti di SQL Server le parametrizzazioni automatiche sono denominate anche parametrizzazioni semplici. 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 da parte del client di interrompere la richiesta attualmente in esecuzione.

Compilazioni SQL/sec

Numero di compilazioni al secondo. Indica il numero di immissioni del percorso del codice di compilazione. Include le compilazioni generate da ricompilazioni a livello di istruzione in SQL Server. Quando l'attività dell'utente di SQL Server è stabile, il valore rimane costante.

Ricompilazioni SQL/sec

Numero di ricompilazioni di istruzioni al secondo. Esegue il conteggio del numero di attivazioni delle ricompilazioni di istruzioni. In generale, il numero di ricompilazioni deve essere basso. Nelle versioni più recenti di SQL Server le ricompilazioni sono con ambito istruzione, mentre in Microsoft SQL Server 2000 sono con ambito batch. Di conseguenza non è possibile eseguire confronti tra i valori di questo contatore in SQL Server e in versioni precedenti.

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.