Creare le statistiche

Si applica a: SQL Server 2022 (16.x) Database Azure SQLIstanza gestita di SQL di Azure

È possibile creare statistiche di ottimizzazione query per una o più colonne di una tabella o di una vista indicizzata in SQL Server usando SQL Server Management Studio o Transact-SQL. Per la maggior parte delle query, tramite Query Optimizer vengono già generate le statistiche necessarie per un piano di query di alta qualità, ma in alcuni casi è necessario creare statistiche aggiuntive.

Limitazioni e restrizioni

Prima di creare statistiche con l'istruzione CREATE STATISTICS, verificare che l'opzione AUTO_CREATE_STATISTICS sia impostata a livello di database. In questo modo, tramite Query Optimizer continuano a essere normalmente create statistiche di colonna singola per colonne dei predicati di query.

È possibile elencare fino a 32 colonne per ogni oggetto statistiche.

Non è possibile eliminare, rinominare o modificare la definizione di una colonna di tabella specificata in un predicato delle statistiche filtrate.

Autorizzazioni

L'utente deve essere il proprietario della tabella o della vista indicizzata o un membro di uno dei seguenti ruoli: ruolo predefinito del server sysadmin , ruolo predefinito del database db_owner o ruolo predefinito del database db_ddladmin .

Usare SQL Server Management Studio

  1. In Esplora oggetti selezionare il segno di addizione per espandere il database in cui si intende creare una nuova statistica.

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

  3. Selezionare il segno di addizione per espandere la tabella in cui si intende creare una nuova statistica.

  4. Fare clic con il pulsante destro del mouse sulla cartella Statistiche e selezionare Nuove statistiche....

    Nella pagina Generale della finestra di dialogo Nuove statistiche per Tabellatable_name vengono visualizzate le proprietà seguenti.

    Proprietà Descrizione
    Nome tabella Consente di visualizzare il nome della tabella descritta dalle statistiche.
    Nome statistiche Consente di visualizzare il nome dell'oggetto di database in cui sono archiviate le statistiche.
    Colonne statistiche In questa griglia vengono visualizzate le colonne descritte dal set di statistiche specifico. Tutti i valori presenti nella griglia sono di sola lettura.
    Nome Consente di visualizzare il nome della colonna descritta dalle statistiche. Può trattarsi di una singola colonna o di una combinazione di colonne di una singola tabella.
    Tipo di dati Consente di indicare il tipo di dati delle colonne descritte dalle statistiche.
    Dimensione Consente di visualizzare le dimensioni del tipo di dati per ogni colonna.
    Identità Se è stata selezionata, questa opzione indica una colonna di identità.
    Consenti valori Null Consente di indicare se la colonna accetta valori NULL.
    Aggiunta Consente di aggiungere altre colonne dalla tabella alla griglia delle statistiche.
    Rimuovi Consente di rimuovere la colonna selezionata dalla griglia delle statistiche.
    Sposta su Consente di spostare la colonna selezionata in una posizione precedente nella griglia delle statistiche. La posizione all'interno della griglia può avere un impatto significativo sull'utilità delle statistiche.
    Sposta giù Consente di spostare la colonna selezionata in una posizione successiva nella griglia delle statistiche.
    Ultimo aggiornamento delle statistiche per le colonne selezionate Indica la data delle statistiche. Le statistiche sono più utili se sono aggiornate. Aggiornare le statistiche dopo aver apportato un gran numero di modifiche ai dati o aver aggiunto dati non comuni. Le statistiche per le tabelle con una distribuzione dei dati uniforme devono essere aggiornate con minore frequenza.
    Aggiorna statistiche per le colonne selezionate Selezionare questa opzione per aggiornare le statistiche alla chiusura della finestra di dialogo.

    Nella pagina Filtro della finestra di dialogo Nuove statistiche per Tabellatable_name viene visualizzata la proprietà seguente.

    Proprietà Descrizione
    Espressione filtro Specifica le righe di dati da includere nelle statistiche filtrate. Ad esempio, Production.ProductSubcategoryID IN ( 1, 2, 3 )
  5. Nella finestra di dialogo Nuove statistiche per Tabellatable_name nella pagina Generale selezionare Aggiungi.

    Nella finestra di dialogo Seleziona colonne vengono visualizzate le proprietà seguenti. Queste informazioni sono di sola lettura.

    Proprietà Descrizione
    Nome Consente di visualizzare il nome della colonna descritta dalle statistiche. Può trattarsi di una singola colonna o di una combinazione di colonne di una singola tabella.
    Tipo di dati Consente di indicare il tipo di dati delle colonne descritte dalle statistiche.
    Dimensione Consente di visualizzare le dimensioni del tipo di dati per ogni colonna.
    Identità Se viene selezionata, questa opzione consente di indicare una colonna di identità.
    Consenti valori Null Consente di indicare se la colonna accetta valori NULL.
  6. Nella finestra di dialogo Seleziona colonne selezionare le caselle di controllo per tutte le colonne per cui si intende creare una statistica, quindi selezionare OK.

  7. Nella finestra di dialogo Nuove statistiche per Tabellatable_name selezionare OK.

Usare Transact-SQL

  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
    -- Create new statistic object called ContactMail1
    -- on the BusinessEntityID and EmailPromotion columns in the Person.Person table.
    
    CREATE STATISTICS ContactMail1
        ON Person.Person (BusinessEntityID, EmailPromotion);
    GO
    
  4. La statistica creata nella procedura precedente può garantire risultati migliori per la query seguente.

    USE AdventureWorks2022;
    GO
    SELECT LastName, FirstName
    FROM Person.Person
    WHERE EmailPromotion = 2
    ORDER BY LastName, FirstName;
    GO
    

Passaggi successivi