Aggiornare le statistiche

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

È possibile aggiornare statistiche di ottimizzazione query per una tabella o una vista indicizzata in SQL Server usando SQL Server Management Studio o Transact-SQL. Per impostazione predefinita, Query Optimizer aggiorna già le statistiche come necessario per migliorare il piano di query. In alcuni casi è possibile migliorare le prestazioni di esecuzione delle query usando UPDATE STATISTICS o la stored procedure sp_updatestats per aggiornare le statistiche più di frequente rispetto agli aggiornamenti predefiniti.

Sebbene consenta di garantire che le query vengano compilate con statistiche aggiornate, l'aggiornamento delle statistiche causa la ricompilazione delle query. Si consiglia di non aggiornare le statistiche troppo frequentemente, perché è necessario mantenere un equilibrio a livello di prestazioni tra la necessità di migliorare i piani di query e il tempo necessario per la ricompilazione delle query. Tale equilibrio dipende dall'applicazione in uso. Per le operazioni UPDATE STATISTICS, è possibile usare tempdb per ordinare il campione di righe usato per la compilazione di statistiche.

Autorizzazioni

Se si utilizza UPDATE STATISTICS o si apportano modifiche tramite SQL Server Management Studio, è necessaria l'autorizzazione ALTER per la tabella o la vista. Se si usa sp_updatestats, è necessario essere un membro del ruolo predefinito del server sysadmin o il proprietario del database (dbo).

Usare SQL Server Management Studio

Aggiornare un oggetto statistiche

  1. In Esplora oggetti, selezionare il segno più per espandere il database in cui si desidera aggiornare la statistica.

  2. Selezionare il segno di addizione per espandere la cartella Tabelle.

  3. Fare clic sul segno più per espandere la tabella in cui si desidera aggiornare la statistica.

  4. Fare clic sul segno più per espandere la cartella Statistiche.

  5. Fare clic con il pulsante destro del mouse sull'oggetto che si vuole aggiornare e scegliere Proprietà.

  6. Nella finestra di dialogo Proprietà statistiche -statistics_name selezionare la casella di controllo Aggiorna statistiche per le colonne selezionate e quindi selezionare OK.

Usare Transact-SQL

Per aggiornare un oggetto statistiche specifico

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui.

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for the AK_SalesOrderDetail_rowguid index of the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid;
    GO
    

Per aggiornare tutte le statistiche in una tabella

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui.

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for all indexes on the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail;
    GO
    

Per altre informazioni, vedere UPDATE STATISTICS.

Per aggiornare tutte le statistiche in un database

  1. In Esplora oggetti connettersi a un'istanza del motore di database.

  2. Sulla barra Standard selezionare Nuova query.

  3. Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui.

    USE AdventureWorks2022;
    GO
    -- The following example updates the statistics for all tables in the database.
    EXEC sp_updatestats;
    

Gestione automatica dell'indice e delle statistiche

Usare le soluzioni come la deframmentazione dell'indice adattativo per gestire automaticamente la deframmentazione dell'indice e gli aggiornamenti delle statistiche per uno o più database. Questa procedura sceglie automaticamente se ricompilare o riorganizzare un indice in base al relativo livello di frammentazione, tra gli altri parametri, e aggiornare le statistiche con una soglia lineare.