Mettre à jour les statistiques

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Vous pouvez mettre à jour les statistiques d’optimisation des requêtes sur une table ou une vue indexée dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL. Par défaut, l’optimiseur de requête met à jour les statistiques en fonction des besoins afin d’améliorer le plan de requête. Dans certains cas, vous pouvez optimiser les performances des requêtes en utilisant UPDATE STATISTICS ou la procédure stockée sp_updatestats pour mettre à jour les statistiques plus fréquemment qu’avec les mises à jour par défaut.

La mise à jour des statistiques est l'assurance que les requêtes sont compilées avec des statistiques à jour. Toutefois, la mise à jour des statistiques entraîne une recompilation des requêtes. Nous vous recommandons de ne pas mettre à jour les statistiques de façon trop fréquente pour ne pas dégrader les performances. En effet, vous devez trouver un compromis entre l’amélioration des plans de requête et le temps nécessaire à la recompilation des requêtes. Ce compromis peut varier en fonction de votre application. UPDATE STATISTICS peut utiliser tempdb pour trier l’échantillon de lignes afin de générer des statistiques.

Autorisations

L’utilisation d’UPDATE STATISTICS ou l’apport de modifications par le biais de SQL Server Management Studio exige l’autorisation ALTER sur la table ou la vue. En cas d’utilisation de sp_updatestats, nécessite l’appartenance au rôle serveur fixe sysadmin ou la propriété de la base de données (dbo).

Utiliser SQL Server Management Studio

Mettre à jour un objet de statistiques

  1. Dans l’Explorateur d’objets, sélectionnez le signe plus (+) pour développer la base de données dans laquelle vous souhaitez mettre à jour la 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 souhaitez mettre à jour la statistique.

  4. Sélectionnez le signe plus (+) pour développer le dossier Statistiques.

  5. Cliquez avec le bouton droit sur l’objet de statistiques à mettre à jour et sélectionnez Propriétés.

  6. Dans la boîte de dialogue Propriétés des statistiques –nom_statistiques, cochez la case Mettre à jour les statistiques pour ces colonnes, puis sélectionnez OK.

Utiliser Transact-SQL

Mettre à jour un objet de statistiques spécifique

  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
    -- The following example updates the statistics for the AK_SalesOrderDetail_rowguid index of the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail AK_SalesOrderDetail_rowguid;
    GO
    

Mettre à jour toutes les statistiques d’une table

  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
    -- The following example updates the statistics for all indexes on the SalesOrderDetail table.
    UPDATE STATISTICS Sales.SalesOrderDetail;
    GO
    

Pour plus d’informations, voir UPDATE STATISTICS.

Mettre à jour toutes les statistiques d’une base de données

  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
    -- The following example updates the statistics for all tables in the database.
    EXEC sp_updatestats;
    

Gestion automatique des index et des statistiques

Utilisez des solutions comme Adaptive Index Defrag pour gérer automatiquement la défragmentation des index et les mises à jour des statistiques pour une ou plusieurs bases de données. Cette procédure choisit automatiquement s’il faut reconstruire ou réorganiser un index en fonction de son niveau de fragmentation, entre autres, et mettre à jour les statistiques avec un seuil linéaire.