Come aggiornare le statistiche SQL Server

Come aggiornare le statistiche SQL Server
Questo articolo comprenderà le basi delle statistiche SQL Server e vari metodi per eseguire un aggiornamento delle statistiche.

Quali sono le statistiche SQL Server?

Le statistiche del server SQL sono grandi oggetti binari utilizzati per contenere informazioni statistiche sulla distribuzione dei valori nelle colonne della tabella.

L'ottimizzatore di query SQL Server utilizza le statistiche per determinare per creare una cardinalità stimata. Il valore della cardinalità viene quindi utilizzato per creare un piano di esecuzione ottimizzato e di alta qualità.

La cardinalità si riferisce al numero di righe.

Pertanto, mantenere aggiornate le statistiche SQL Server è importante, poiché i risultati statistici errati possono portare a un piano di query costoso e un elevato utilizzo delle risorse. Un piano di esecuzione scadente dall'ottimizzatore di query può portare a problemi, come il blocco e i deadlock.

Cos'è il piano di esecuzione SQL Server?

Un piano di esecuzione o un piano di query si riferisce a una serie di passaggi organizzati per interrogare e accedere ai dati in un database. L'ottimizzatore query genererà una rappresentazione grafica del metodo ad alto ottimizzato per recuperare i dati per la query specificata.

Visualizza le statistiche del server SQL

In SQL Server, è possibile utilizzare la query SQL Server Management Studio o T-SQL per visualizzare le statistiche di un oggetto specifico.

In SSMS, vai in database -> Database di destinazione -> Tabelle -> Tabella di destinazione -> Statistiche.

Come mostrato:

Per visualizzare i dettagli di un oggetto statistico specifico, fare clic con il pulsante destro del mouse e selezionare l'opzione Proprietà. È possibile visualizzare l'ultima volta che le statistiche per le colonne sono state aggiornate come:

Per visualizzare la distribuzione e la frequenza dell'istogramma, utilizzare la scheda Dettagli nella finestra Proprietà.

SQL Server View Statistics: Transact-SQL

Puoi anche visualizzare i dettagli di una statistica utilizzando una query T-SQL. Considera la query di esempio mostrata di seguito:

Usa SalesDB;
Selezionare
statistiche.nome,
stats_properties.ultimo aggiornamento,
stats_properties.file,
stats_properties.ROWS_SAMPLED,
stats_properties.non filtrate_rows,
stats_properties.modifica_counter,
stats_properties.Passi
da sys.statistiche come statistiche
esterno applicare sys.dm_db_stats_properties (statistiche.Object_id, statistiche.stats_id) come stats_properties
dove object_name (statistiche.object_id) = 'clienti'
ordine di last_updated desc;

La query sopra dovrebbe restituire un risultato di esempio come:

SQL Server fornisce anche il comando DBCC per mostrare i dettagli di una statistica specifica. Esempio:

DBCC Show_Statistics ("Clienti", "CustomerPK");

La query sopra richiede due parametri: nome della tabella e statistiche target, rispettivamente.

Statistiche di aggiornamento del server SQL

Esistono vari modi per aggiornare le statistiche in SQL Server. Per abilitare l'aggiornamento delle statistiche automatiche, fare clic con il pulsante destro del mouse sul database di destinazione, navigare nella scheda Opzioni e impostare le "statistiche di aggiornamento automatico" su TRUE nella scheda automatica.

Per aggiornare le statistiche manualmente utilizzando la query T-SQL, utilizzare la query come mostrato:

Aggiorna le statistiche DBO.Clienti;

Dove dbo.I clienti rappresentano la tabella di destinazione.

È inoltre possibile utilizzare il comando di aggiornamento delle statistiche come:

EXEC SP_UPDATESTATS;

L'output è come:

Conclusione

Questa guida copre come lavorare con statistiche SQL Server e vari metodi per eseguire aggiornamenti di statistiche in SSMS e T-SQL.