Liste de vérification pour l'analyse des requêtes longues à s'exécuter

Les requêtes ou les mises à jour qui prennent plus de temps que prévu sont dues à diverses raisons. Elles peuvent être la conséquence de problèmes de performances en rapport avec le réseau ou l'ordinateur qui exécute SQL Server. Elles peuvent également être dues à la structure physique de votre base de données.

Les facteurs les plus courants qui entraînent une exécution lente des requêtes et des mises à jour sont les suivants :

  • lenteur des communications sur le réseau ;
  • mémoire inadaptée de l'ordinateur serveur ou mémoire disponible insuffisante pour SQL Server ;
  • manque de statistiques utiles sur les colonnes indexées ;
  • statistiques périmées sur les colonnes indexées ;
  • manque d'index utiles ;
  • manque de vues indexées utiles ;
  • manque d'entrelacements de données utiles ;
  • manque de partitionnements utiles.

Liste de vérification pour le dépannage des requêtes longues à s'exécuter

Lorsqu'une requête ou une mise à jour est plus longue à s'exécuter que prévu, posez-vous les questions suivantes qui concernent les raisons mentionnées au paragraphe précédent :

ms177500.note(fr-fr,SQL.90).gifConseil :
Pour gagner du temps, examinez cette liste de vérification avant de contacter le support technique.
  1. Le problème de performances est-il lié à un élément autre que des requêtes ? Par exemple, s'agit-il de la lenteur du réseau ? Existe-t-il d'autres éléments susceptibles de provoquer ou de contribuer à cette baisse des performances ?
    Vous pouvez utiliser le Moniteur système Windows pour surveiller les performances de SQL Server mais aussi celles des composants connexes non SQL Server. Pour plus d'informations, consultez Surveillance de l'utilisation des ressources (Moniteur système).
  2. Si le problème est lié aux requêtes, quelle requête ou jeu de requêtes concerne-t-il ?
    Utilisez d'abord le Générateur de profils SQL Server pour identifier la ou les requêtes lentes. Pour plus d'informations, consultez Utilisation du Générateur de profils SQL Server.
    Après avoir identifié les requêtes dont l'exécution est lente, vous pouvez analyser plus avant les performances des requêtes incriminées en générant un Showplan, qui peut être un texte, un fichier XML ou une représentation graphique du plan d'exécution des requêtes que génère l'optimiseur de requête. Vous pouvez générer un Showplan à l'aide des options SET de Transact-SQL, de SQL Server Management Studio ou de Générateur de profils SQL Server.
    Pour plus d'informations sur l'utilisation des options SET de Transact-SQL pour afficher un texte et des plans d'exécution XML, consultez Affichage des plans d'exécution à l'aide des options Showplan SET (Transact-SQL).
    Pour plus d'informations sur l'utilisation de SQL Server Management Studio pour afficher des plans d'exécution graphique, consultez Affichage de plans d'exécution graphique (SQL Server Management Studio).
    Pour plus d'informations sur l'utilisation de Générateur de profils SQL Server pour afficher un texte et des plans d'exécution XML, consultez Affichage des plans d'exécution en utilisant des classes d'événements dans le Générateur de profils SQL Server.
    Les informations collectées par ces outils permettent de définir comment une requête est exécutée par l'optimiseur de requête SQL Server, ainsi que les index à utiliser. Ces informations permettent aussi de savoir si des améliorations de performances sont possibles en réécrivant la requête, en changeant les index des tables ou, éventuellement, en modifiant la structure de la base de données. Pour plus d'informations, consultez Analyse d'une requête.
  3. La requête a-t-elle été exécutée de façon optimale à l'aide des statistiques appropriées ?
    Les statistiques sur la distribution des valeurs dans une colonne sont automatiquement créées sur des colonnes indexées par SQL Server. Il est également possible de les créer sur des colonnes non indexées, soit manuellement à l'aide de SQL Server Management Studio ou de l'instruction CREATE STATISTICS, soit automatiquement, si l'option AUTO_CREATE_STATISTICS de la base de données a la valeur TRUE. Ces statistiques peuvent être exploitées par le processeur de traitement des requêtes afin de déterminer la stratégie optimale d'évaluation d'une requête. Les performances des requêtes peuvent être améliorées en conservant des statistiques supplémentaires dans des colonnes non indexées impliquées dans des opérations de jointure. Pour plus d'informations, consultez Statistiques d'index.
    Surveillez la requête à l'aide du Générateur de profils SQL Server ou du plan graphique d'exécution de SQL Server Management Studio pour savoir si les statistiques de cette requête sont suffisantes. Pour plus d'informations, consultez Catégorie d'événements Erreurs et avertissements (moteur de base de données).
  4. Les statistiques sur les requêtes sont-elles à jour ? Sont-elles mises à jour automatiquement ?
    SQL Server crée et met à jour automatiquement des statistiques sur les requêtes dans des colonnes indexées (sous réserve que la mise à jour automatique des statistiques de requête soit activée). De plus, il est également possible de créer des statistiques sur des colonnes non indexées, soit manuellement à l'aide de SQL Server Management Studio ou de l'instruction UPDATE STATISTICS, soit automatiquement, si l'option AUTO_UPDATE_STATISTICS de la base de données a la valeur TRUE. Les statistiques à jour ne dépendent pas des données de date ou d'heure. Si aucune opération UPDATE n'a été effectuée, les statistiques de requête sont toujours à jour.
    Si la mise à jour automatique des statistiques n'est pas activée, faites-le. Pour plus d'informations, consultez Statistiques d'index.
  5. Des index adaptés sont-ils disponibles ? L'ajout d'un ou plusieurs index est-il susceptible d'améliorer les performances des requêtes ? Pour plus d'informations, consultez Consignes générales pour la création d'index, Recherche d'index manquants et Guide de référence de l'Assistant Paramétrage du moteur de base de données. L'Assistant Paramétrage du moteur de base de données peut également recommander de créer des statistiques nécessaires.
  6. Existe-t-il des groupes d'instructions concernant les données ou les index ? Envisagez l'utilisation de l'entrelacement des fichiers sur plusieurs disques. L'entrelacement des fichiers sur plusieurs disques peut se mettre en œuvre au moyen de disques RAID au niveau 0 sur lesquels les données sont réparties sur plusieurs disques. Pour plus d'informations, consultez Utilisation des fichiers et des groupes de fichiers et RAID.
  7. L'optimiseur de requête représente-t-il la meilleure solution pour exécuter de façon optimale une requête complexe ? Pour plus d'informations, consultez Recommandations pour le paramétrage des requêtes.
  8. Si vous avez un volume de données important, avez-vous besoin de le partitionner ? La facilité de gestion des données est le principal avantage du partitionnement. Cependant, si vos tables et index sont partitionnés de la même manière, le partitionnement peut également améliorer les performances des requêtes. Pour plus d'informations, consultez Présentation du partitionnement et Paramétrage du modèle physique de la base de données.

Voir aussi

Concepts

Affichage des plans d'exécution à l'aide des options Showplan SET (Transact-SQL)
Affichage des plans d'exécution en utilisant des classes d'événements dans le Générateur de profils SQL Server
Sécurité Showplan
Instructions Transact-SQL qui génèrent des plans d'exécution

Aide et Informations

Assistance sur SQL Server 2005