Les instructions SQL sont le principal moyen par lequel les entreprises et les organisations récupèrent des informations dans la base de données. Cependant, ces instructions ne sont pas toujours composées aussi efficacement qu’elles pourraient l’être, ce qui peut entraîner des ralentissements du serveur. C’est pourquoi vous entendez tant parler de l’optimisation des requêtes SQL – c’est un processus nécessaire si vous espérez garantir des niveaux élevés de performance du serveur.
Une partie du processus d’optimisation et de réglage du SQL implique des calibrages réguliers des requêtes SQL. Différentes requêtes SQL peuvent être utilisées pour récupérer les mêmes informations, mais toutes les requêtes ne sont pas efficaces – il est donc important de s’assurer que vous utilisez les bonnes requêtes pour optimiser la façon dont les données sont tirées des bases de données et des serveurs SQL. Heureusement, il existe des outils capables de vous aider dans ce processus d’optimisation des performances des requêtes SQL. Dans ce guide, je souligne pourquoi l’optimisation des requêtes SQL est importante et quels outils vous pouvez utiliser pour améliorer l’optimisation des performances des requêtes SQL comme SolarWinds® Database Performance Analyzer.
La nécessité d’optimiser les requêtes SQL
Comment vérifier et améliorer les performances des requêtes
Les meilleures pratiques d’optimisation du serveur SQL
Les avantages des outils de réglage du serveur SQL
Les meilleurs outils d’optimisation des performances des requêtes SQL
La nécessité d’optimiser les requêtes SQL
La lenteur ou l’échec des requêtes SQL peut entraîner plusieurs problèmes pour les entreprises et les organisations. Considérant que les clients s’attendent à ce que les sites Web répondent rapidement à leurs recherches, des décalages et des retards importants dans le temps de réponse de la base de données peuvent les amener à aller voir ailleurs. Alors que quelques millisecondes de retard peuvent sembler peu pour des actions ou des processus individuels, ils peuvent rapidement s’aggraver s’ils sont répartis sur l’ensemble d’une entreprise ou d’une activité.
Le réglage SQL aide à rendre le code plus efficace, ce qui est une partie importante du maintien d’une performance optimale des requêtes de base de données. Cependant, faire l’optimisation et le réglage des performances à la main est une ponction sur le temps et les ressources des administrateurs de bases de données. Elle est également sujette à l’erreur humaine, car elle exige des administrateurs qu’ils aient les compétences et l’expertise nécessaires non seulement pour localiser les requêtes peu performantes, mais aussi pour savoir comment corriger le code. Cela nécessite une connaissance des principales instructions SQL et des types d’attente, ainsi que des requêtes bloquées et une compréhension du fonctionnement des index, autant d’éléments que les outils de tuning contribuent à rendre plus faciles à gérer.
Comment vérifier et améliorer les performances des requêtes
L’une des questions les plus courantes au cours de ce processus est de savoir comment vérifier les performances des requêtes dans SQL Server, une base de données SQL courante. Si vous vous demandez comment vérifier les performances d’une base de données dans SQL Server, vous feriez bien de commencer par examiner vos requêtes et améliorer leurs performances. Pour commencer à optimiser les requêtes SQL dans SQL Server, vous devriez considérer ces étapes de base :
- Lorsque vous commencez le processus de réglage d’une base de données, assurez-vous d’abord que vous regardez les tables (et non les vues), puis notez le rowcount. Ensuite, filtrez le rowcount en examinant les clauses WHERE et JOIN.
- Vous voudrez ensuite vous assurer que les tables sont aussi sélectives que possible lorsque vous travaillez avec des ensembles de données plus petits.
- Puis, examinez les colonnes de requête pour les fonctions SELECT * et scalaires qui pourraient récupérer plus d’informations que ce que la requête requiert. Envisagez de rendre l’index interrogeable – cela supprime la nécessité d’effectuer un balayage complet de la base de données.
- Puis examinez les clés, contraintes et index existants pour éviter les doublons et les chevauchements. Prenez note de la définition de la clé primaire et si elle est en cluster.
- Maintenant, vous êtes prêt à exécuter le plan d’exécution. Assurez-vous que les statistiques sont activées avant de le faire. Une fois le plan exécuté, examinez les lectures logiques – moins d’E/S logiques signifie que la requête s’exécute plus rapidement – et enregistrez les résultats.
- Ajustez la requête en vous concentrant sur les opérations les plus coûteuses, puis exécutez-la à nouveau. Comparez les résultats.
- Si nécessaire, envisagez d’ajuster les index pour inclure un index de couverture ou de filtrage (bien que vous ne devriez pas utiliser ce dernier si vous avez des déclarations paramétrées).
Bonnes pratiques d’optimisation du serveur SQL
Alors que vous optimisez les performances des bases de données SQL, ces conseils généraux d’optimisation des requêtes et des bases de données peuvent vous aider à améliorer les performances au niveau syntaxique.
Choisissez les champs SELECT plutôt que SELECT *
Une façon simple de réduire la charge de travail que chaque requête impose à une base de données est de limiter la quantité d’informations que chaque requête récupère. Au début du processus d’exécution des requêtes, de nombreux développeurs utiliseront l’instruction SELECT *, qui récupérera toutes les informations disponibles stockées dans une table de base de données. Avec de grandes tables comportant de multiples champs et lignes, l’utilisation des instructions SELECT * crée une ponction sur les ressources de la base de données en récupérant potentiellement de grandes quantités de données inutiles.
En utilisant des instructions SELECT avec des champs définis de manière plus spécifique, les administrateurs peuvent diriger les requêtes pour récupérer uniquement les informations nécessaires.
Éviter les instructions SELECT DISTINCT
Bien que l’état SELECT DISTINCT soit utile pour supprimer les doublons d’une requête, il utilise une grande quantité de puissance de traitement. Pour éviter de ralentir les performances de la requête, vous pouvez sélectionner plus de champs pour générer des résultats uniques.
Définir des filtres avec WHERE au lieu de HAVING
Le but premier du tuning SQL est l’efficacité, et dans l’ordre des opérations SQL, les clauses WHERE seront calculées avant les instructions HAVING. Cela les rend plus efficaces pour définir des filtres car elles limiteront le nombre d’enregistrements récupérés dans la base de données. Cependant, les instructions HAVING doivent être utilisées pour filtrer sur des champs agrégés.
Garder les jokers à la fin des phrases
Les jokers sont utiles pour créer des recherches extrêmement larges, ce qui présente également le risque d’être inefficace. La combinaison d’un caractère générique de tête et d’un caractère générique de fin l’est particulièrement, car elle interrogera la base de données pour tous les enregistrements dont le texte correspond à ce qui se trouve entre les deux caractères génériques. Si l’on recherche des noms de clients, par exemple, %Son% récupérera à la fois « Sonia » et « Richardson », alors que Son% ne renverra que « Sonia ».
Utiliser LIMIT pour échantillonner les résultats de la requête
L’utilisation d’une instruction LIMIT avant l’exécution d’une requête permettra aux administrateurs de bases de données d’étudier rapidement un nombre spécifié de résultats afin de déterminer si la requête doit être affinée. Les requêtes renvoyant potentiellement un grand nombre de résultats sont taxantes à exécuter sur les bases de données et l’utilisation d’une instruction LIMIT rationalise le processus de test des ajustements apportés à une requête.
Utiliser INNER JOIN plutôt que WHERE pour les jointures
Bien que certains développeurs SQL préfèrent utiliser des clauses WHERE lors de la réalisation de jointures, cela présente le risque de créer ce que l’on appelle une jointure cartésienne. Également appelées produits cartésiens ou CROSS JOINs, ces jointures génèrent toutes les combinaisons possibles des variables énumérées dans l’instruction SQL. Cela peut rapidement poser des problèmes avec les grandes bases de données, car toutes les combinaisons possibles de deux tables riches en données pourraient facilement générer des milliards, voire des trillions, de résultats. La clause INNER JOIN permet d’éviter en grande partie ce problème.
Retour en haut de page
Avantages des outils de réglage SQL Server
Bien que le réglage des requêtes SQL puisse être effectué manuellement, il s’agit d’un processus compliqué et long, c’est pourquoi l’utilisation d’outils de réglage SQL peut permettre aux administrateurs de bases de données de maximiser plus efficacement les performances de leurs serveurs et bases de données. Les outils d’optimisation des performances des requêtes SQL sont une partie essentielle de la surveillance complète de SQL Server, ce qui libère les administrateurs et le personnel de support technologique pour qu’ils puissent consacrer leur attention à la résolution de problèmes plus critiques.
Les meilleurs outils d’optimisation des requêtes SQL comprendront trois fonctions principales :
- L’optimisation SQL : Cela fait référence à la capacité de l’outil à réécrire le code de l’instruction SQL pour améliorer les performances des serveurs et des bases de données.
- Surveillance des bases de données basées sur le cloud : Avec l’évolution vers l’informatique et les réseaux basés sur le cloud, de nombreuses applications de tuning SQL incluent désormais la capacité de surveiller les bases de données, quel que soit l’endroit où elles sont hébergées.
- Optimisation en ligne : La possibilité d’accéder à distance et d’optimiser les requêtes à partir d’appareils mobiles et de navigateurs Web – plutôt que de devoir le faire à partir d’un poste de travail dédié dans un certain emplacement physique – rend le processus d’optimisation des instructions SQL beaucoup plus pratique à naviguer.
Les outils d’optimisation offrent des fonctionnalités supplémentaires et une facilité d’utilisation pour l’optimisation des requêtes SQL. Les applications de réglage de SQL Server surveillent les performances de la base de données et fourniront souvent des interfaces utilisateur avec des représentations graphiques des performances des requêtes et des temps d’attente, ce qui peut aider les administrateurs à identifier les goulots d’étranglement des ressources avec plus de rapidité et de précision. En créant un journal historique des mesures de performance, ces outils de surveillance constituent un élément inestimable pour s’assurer que toutes les requêtes SQL actuelles fonctionnent aussi efficacement que possible.
De nombreux outils d’aide à l’optimisation des requêtes dans SQL Server sont dotés de systèmes d’alerte et de notification personnalisables intégrés pour identifier et remédier automatiquement aux requêtes présentant des performances médiocres. Parce que cela supprime la nécessité pour un administrateur de base de données d’approuver ou de mettre en œuvre les modifications suggérées, les outils d’optimisation de SQL Server peuvent réduire le temps de réponse lors de la résolution des problèmes de serveur lorsqu’ils se produisent. En gérant et en surveillant de manière proactive les requêtes SQL, les administrateurs de bases de données peuvent s’assurer que les requêtes SQL continuent à fonctionner efficacement à l’avenir, tout en évitant potentiellement les problèmes avant qu’ils ne se produisent.
Retour en haut de page
Les meilleurs outils d’optimisation des performances des requêtes SQL
Bien qu’il soit certainement utile de connaître certains des détails de la façon d’accorder manuellement les requêtes SQL, une partie de l’attrait des outils d’optimisation des requêtes SQL est leur capacité à rationaliser le processus d’accord et peut même offrir des conseils sur les clauses et les déclarations où l’efficacité peut être améliorée. Voici trois de mes favoris que vous pouvez consulter.
SolarWinds Database Performance Analyzer
Cette application d’optimisation des performances des requêtes SQL est conçue à la fois pour la surveillance des performances et l’optimisation des requêtes. Je privilégie Database Performance Analyzer pour un grand nombre des mêmes raisons que j’aime les autres programmes SolarWinds – en particulier parce qu’il est chargé de plusieurs fonctionnalités personnalisables, notamment des tableaux de bord intuitifs vous permettant de suivre facilement les performances des requêtes SQL et des machines clientes et de détecter rapidement les modèles au fil du temps avec des métriques à code couleur.
Database Performance Analyzer assure une surveillance 24 heures sur 24 des bases de données et utilise des protocoles de détection basés sur les anomalies pour identifier les requêtes sous-performantes. L’interface utilisateur accessible fournit à la fois des vues d’ensemble sur les performances globales du réseau et des détails granulaires comme le Top Waits for SQL, qui permet aux administrateurs d’identifier rapidement les requêtes qui ont le plus besoin d’attention.
Database Performance Analyzer crée un historique des performances, synthétisant les données en temps quasi réel avec des métriques historiques et actuelles pour créer des graphiques à barres qui, lorsqu’ils sont associés à des alertes et des notifications personnalisables, peuvent rapidement tenir les administrateurs informés des problèmes potentiels. Les conseillers en réglage offrent également des suggestions sur les requêtes nécessitant une attention immédiate.
En somme, il s’agit d’une option excellente et complète entièrement compatible avec les autres produits SolarWinds. Si vous souhaitez essayer avant d’acheter, je vous encourage à consulter leur essai gratuit du produit pendant 14 jours.
Retour en haut
SentryOne SQL Sentry
Cette application d’optimisation des performances des requêtes SQL et de gestion des bases de données peut également être utilisée pour l’optimisation des requêtes SQL. SentryOne permet aux administrateurs de bases de données d’établir des protocoles d’évaluation des performances à appliquer aux serveurs et bases de données SQL pour repérer les goulets d’étranglement des ressources et les requêtes SQL peu performantes.
SentryOne dispose d’une fonctionnalité de détection des blocages affichant les processus bloquants dans une interface graphique similaire à celle de SolarWinds Database Performance Analyzer. SentryOne suit également les processus qui entraînent des blocages et fournit des conseils sur les changements à mettre en œuvre lors du réglage des requêtes.
SentryOne automatise également une grande partie du processus de surveillance et comprend plus de 100 conditions d’alerte intégrées pour tenir les administrateurs de bases de données informés des problèmes de performance au fur et à mesure qu’ils se produisent. SentryOne peut également être personnalisé pour répondre automatiquement lorsqu’une des conditions de seuil a été atteinte. En automatisant la majorité de l’optimisation et de la gestion des requêtes SQL, le système d’alerte de SentryOne libère les administrateurs pour des tâches plus urgentes.
Paessler PRTG Network Monitor
Un autre concurrent de poids pour l’optimisation des performances des requêtes SQL est PRTG Network Monitor de Paessler. Cet outil de surveillance du réseau peut être utilisé pour suivre les mesures de performances de plusieurs types de bases de données SQL, dont Microsoft SQL Server, MySQL, Oracle SQL et PostgreSQL, grâce à des capteurs de base de données individuels. Les capteurs sont rapidement configurés lors du démarrage et ne nécessitent aucune maintenance supplémentaire une fois qu’ils sont actifs.
Pour l’optimisation des requêtes SQL dans SQL Server, PRTG Network Monitor suit les requêtes SQL à chaque phase de la requête et affiche les temps d’exécution dans une interface de tableau de bord pour une évaluation rapide des problèmes de performance. Les vastes capacités de surveillance réseau de l’application offrent également une visibilité sur les problèmes réseau plus larges susceptibles d’affecter les performances de vos serveurs et bases de données. L’ampleur des informations suivies par l’outil permet de rationaliser l’expérience d’optimisation des performances des requêtes SQL.
Comme les deux autres options ici, PRTG Network Monitor dispose d’un système d’alerte fonctionnant pour tenir tous les acteurs clés informés en cas de problèmes potentiels de performances. Les alertes peuvent également être personnalisées, mais PRTG Network Monitor inclut une fonctionnalité d’API supplémentaire permettant aux administrateurs d’écrire des scripts de notification adaptés précisément aux spécifications de leurs réseaux, de leurs serveurs et de leurs bases de données.
Il est également possible de personnaliser les alertes.
0 commentaire