Create statistics

S’applique à : SQL Server 2022 (16.x) Azure SQL DatabaseAzure SQL Managed Instance

Vous pouvez créer des statistiques d’optimisation des requêtes sur une ou plusieurs colonnes d’une table ou d’une vue indexée dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. Pour la plupart des requêtes, l'optimiseur de requête génère déjà les statistiques utiles à un plan de requête de haute qualité ; dans certains cas, vous devez créer des statistiques supplémentaires.

Limitations et restrictions

Avant de créer des statistiques avec l'instruction CREATE STATISTICS, vérifiez que l'option AUTO_CREATE_STATISTICS est définie au niveau de la base de données. Cela garantit que l'optimiseur de requête continue de créer régulièrement des statistiques de colonnes uniques pour les colonnes de prédicat de requête.

Vous pouvez afficher jusqu'à 32 colonnes par objet de statistiques.

Vous ne pouvez pas supprimer, renommer ou modifier la définition d’une colonne de table définie dans un prédicat de statistiques filtré.

Autorisations

Nécessite que l’utilisateur soit le propriétaire de la table ou de la vue indexée ou qu’il soit membre d’un des rôles suivants : rôle serveur fixe sysadmin , rôle de base de données fixe db_owner ou rôle de base de données fixe db_ddladmin .

Utiliser SQL Server Management Studio

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus pour développer la base de données dans laquelle vous souhaitez créer une nouvelle statistique.

  2. Sélectionnez le signe plus (+) pour développer le dossier Tables.

  3. Sélectionnez le signe plus (+) pour développer la table dans laquelle vous voulez créer une statistique.

  4. Cliquez avec le bouton droit sur le dossier Statistiques et sélectionnez Nouvelles statistiques....

    Les propriétés suivantes s’affichent dans la page Général dans la boîte de dialogue Nouvelles statistiques sur la tablenom_table .

    Propriété Description
    Nom de la table Affiche le nom de la table décrite par les statistiques.
    Nom des statistiques Spécifie le nom de l'objet de base de données dans lequel les statistiques sont stockées.
    Colonnes de statistiques Cette grille montre les colonnes décrites par ce jeu de statistiques. Toutes les valeurs contenues dans la grille sont en lecture seule.
    Nom  Affiche le nom de la colonne décrite par les statistiques. Cela peut être une colonne individuelle ou une combinaison de colonnes dans une table individuelle.
    Type de données Indique le type de données des colonnes décrites par les statistiques.
    Size Indique la taille du type de données de chaque colonne.
    Identité Indique une colonne d'identité lorsque l'option est activée.
    Autoriser les valeurs NULL Indique si la colonne accepte les valeurs NULL.
    Ajouter Ajoutez d’autres colonnes de la table à la grille des statistiques.
    Supprimer Permet de supprimer la colonne sélectionnée de la grille des statistiques.
    Monter Permet de déplacer la colonne sélectionnée vers un emplacement antérieur dans la grille des statistiques. L’emplacement de la grille peut affecter considérablement l’utilité des statistiques.
    Descendre Permet de déplacer la colonne sélectionnée vers un emplacement ultérieur dans la grille des statistiques.
    Les statistiques de ces colonnes ont été mises à jour pour la dernière fois Indique l'ancienneté des statistiques. Les statistiques ont plus de valeur lorsqu'elles sont actuelles. Mettez à jour les statistiques après des modifications importantes des données ou après l'ajout de données atypiques. Les statistiques de tables dont la distribution des données est cohérente peuvent être mises à jour moins souvent.
    Mettre à jour les statistiques pour ces colonnes Activez cette option pour mettre à jour les statistiques lors de la fermeture de la boîte de dialogue.

    Les propriétés suivantes s’affichent dans la page Filtre dans la boîte de dialogue Nouvelles statistiques sur la tablenom_table .

    Propriété Description
    Expression de filtre Définit quelles lignes de données inclure dans les statistiques filtrées. Par exemple, Production.ProductSubcategoryID IN ( 1, 2, 3 )
  5. Dans la boîte de dialogue New Statistics on Tabletable_name, dans la page Général, sélectionnez Ajouter.

    Les propriétés suivantes s'affichent dans la boîte de dialogue Sélectionner les colonnes . Ces informations sont en lecture seule.

    Propriété Description
    Nom  Affiche le nom de la colonne décrite par les statistiques. Cela peut être une colonne individuelle ou une combinaison de colonnes dans une table individuelle.
    Type de données Indique le type de données des colonnes décrites par les statistiques.
    Size Indique la taille du type de données de chaque colonne.
    Identité Indique une colonne d'identité lorsque l'option est cochée.
    Autoriser les valeurs NULL Indique si la colonne accepte les valeurs NULL.
  6. Dans la boîte de dialogue Sélectionner des colonnes , activez la case à cocher ou les cases à cocher de chaque colonne pour laquelle vous souhaitez créer une statistique, puis sélectionnez OK.

  7. Dans la boîte de dialogue New Statistics on Tabletable_name , sélectionnez OK.

Utiliser Transact-SQL

  1. Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    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. Les statistiques créées ci-dessus améliorent potentiellement les résultats de la requête suivante.

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

Étapes suivantes