Les données sont tout et, par conséquent, SQL est partout. Le langage de requête structuré est devenu le langage de requête le plus utilisé et il est pris en charge par la plupart des systèmes de gestion de bases de données relationnelles modernes. En fait, son utilisation est si répandue que nous appelons souvent les serveurs de bases de données des serveurs SQL.
Le langage définit comment les requêtes peuvent être formées pour extraire d'une base de données les données précises qui sont nécessaires. Compte tenu de la multiplicité des bases de données modernes avec des dizaines de tables jointes, les requêtes SQL peuvent être assez complexes. Une complexité accrue s'accompagne de performances réduites. L'optimisation des requêtes SQL permet d'affiner les requêtes afin qu'elles renvoient les bonnes données le plus rapidement possible . L'optimisation des requêtes SQL peut être effectuée manuellement, mais des outils existent pour aider à les optimiser. Nous sommes sur le point de passer en revue certains des meilleurs outils que nous avons trouvés.
Puisque nous voulons que tout le monde soit sur la même longueur d'onde lorsque nous examinons les meilleurs produits, nous commencerons par discuter du quoi et du timide de l'optimisation des requêtes SQL. Ensuite, nous aborderons les principales fonctionnalités des outils d'optimisation des requêtes SQL. Différents outils offrent différentes fonctionnalités, comme vous êtes sur le point de le voir. Nous ferons de notre mieux pour trier les fonctionnalités essentielles que vous devriez rechercher lors de la sélection du meilleur outil pour vos besoins spécifiques. Et enfin, nous passerons en revue les meilleurs outils que nous avons pu trouver.
Optimisation des requêtes dans les serveurs SQL
En termes simples, l'optimisation des requêtes SQL consiste à analyser les requêtes SQL et à déterminer le mécanisme d'exécution le plus efficace. Il s'agit souvent d'un processus d'essais et d'erreurs où différentes requêtes sont testées pour voir laquelle offre les meilleures performances, tout en renvoyant les données recherchées. Les optimiseurs de requêtes sont parfois intégrés aux systèmes de gestion de base de données, mais des outils tiers externes sont souvent considérés comme offrant de meilleurs résultats en termes de performances. Un optimiseur de requête typique générera un ou plusieurs plans de requête pour chaque requête, chacun étant un mécanisme utilisé pour exécuter la requête. Les performances (c'est-à-dire le temps d'exécution) de chacun sont mesurées et le plan de requête le plus efficace est sélectionné et utilisé pour exécuter la requête. Alors que certains outils d'optimisation des requêtes SQL sont des applications d'assistance plus simples qui nécessitent beaucoup d'assistance humaine,
Voici un exemple rapide d'optimisation de requête. Si un utilisateur exécute une requête qui sélectionne environ la moitié des données d'une table à un moment où le serveur est lourdement chargé de plusieurs connexions simultanées. Dans une telle situation, l'optimiseur de requête peut décider d'utiliser un plan de requête qui utilise les index de table pour satisfaire la requête, en fonction de ressources limitées. Cela peut réduire la consommation de ressources du serveur par la requête. Si l'utilisateur exécutait la même requête à un autre moment alors que davantage de ressources serveur étaient disponibles, l'optimiseur de requêtes aurait pu déterminer que la limitation des ressources n'était pas un problème et ne pas utiliser les index de table, chargeant ainsi la table complète en mémoire.
Principales caractéristiques des outils d'optimisation de requêtes SQL
Comme nous l'avons déterminé, la fonction principale d'un outil SQL Query Optimizer est d'essayer de déterminer la meilleure façon d'exécuter la requête en analysant différents plans de requête. Tous les outils examinés ici le feront au moins, mais certains offrent beaucoup plus de fonctionnalités. Jetons un coup d'œil à certaines des principales fonctionnalités couramment trouvées dans les outils d'optimisation des requêtes SQL.
Optimisation SQL de base
Il s'agit de la fonctionnalité principale des outils d'optimisation des requêtes SQL. C'est le processus de réécriture des instructions SQL différemment dans le but d'améliorer les performances de la requête tout en obtenant le même ensemble de données résultant. L'outil fonctionne en mesurant le temps d'exécution de la requête des différentes versions de la requête (plans de requête) et en choisissant celle qui s'exécute le plus rapidement.
Prise en charge du moteur de base de données
La plupart des outils prendront au moins en charge les moteurs de base de données les plus courants tels que Microsoft SQL, Oracle, MySQL, PostgreSQL et MariaDB. D'autres prendront en charge une sélection plus large et d'autres encore n'en prendront en charge qu'une. Il est important de choisir un outil qui peut prendre en charge tous les moteurs que vous utilisez,
Prise en charge des bases de données basées sur le cloud
Certains outils d'optimisation de requêtes SQL sont capables d'analyser et d'optimiser des bases de données hébergées dans le cloud, telles que Microsoft SQL Azure ou AWS RDS. La prise en charge du cloud varie considérablement d'un outil à l'autre. Encore une fois, il est important d'en choisir un qui prend en charge ce que vous avez. Notez que la plupart des outils prenant en charge les bases de données cloud prendront également en charge celles sur site.
Meilleurs outils et logiciels d'optimisation de requêtes SQL
Le moment est enfin venu de révéler et d'examiner les meilleurs outils et logiciels d'optimisation de requêtes SQL que nous avons pu trouver. Notre liste contient de nombreux types d'outils différents, chacun apportant sa propre touche d'optimisation. Nos principaux critères d'inclusion étaient que chaque produit aidait au moins à optimiser manuellement les requêtes SQL (la plupart le font automatiquement) et qu'ils fonctionnaient comme annoncé. Nous ne voudrions pas que vous perdiez du temps sur des produits qui ne feront pas ce qu'ils devraient.
1. Analyseur de performances de base de données SolarWinds (essai GRATUIT)
Notre premier produit provient de SolarWinds, une entreprise qui a joui d'une excellente réputation pour la fabrication de certains des meilleurs outils de gestion de réseau et de système pendant la majeure partie de ses vingt ans d'existence. Son produit phare appelé SolarWinds Network Performance Monitor est considéré par beaucoup comme l'un des meilleurs logiciels de surveillance de la bande passante du réseau. Une partie de la renommée de SolarWinds vient également des nombreux outils gratuits qu'il propose. Ce sont des outils plus petits, chacun adressant une tâche spécifique des administrateurs réseau. Deux excellents exemples de ces outils sont le calculateur de sous-réseau avancé et le serveur Kiwi Syslog.
Pour l'optimisation des requêtes SQL, vous avez cependant besoin de SolarWinds Database Performance Analyzer (DPA) , un outil de gestion de base de données conçu pour la surveillance, l'analyse et le réglage des performances des requêtes SQL. Il surveille et analyse vos instances de base de données SQL et, à l'aide d'une méthode d'analyse du temps de réponse qui se concentre principalement sur le temps entre une requête de requête et la réponse correspondante de la base de données, analyse les types d'attente et les événements pour identifier les goulots d'étranglement des bases de données.
L'outil, qui est également idéal pour le dépannage, dispose d'une interface facile à utiliser qui vous aidera à trouver les problèmes rapidement et facilement. L'écran principal vous permettra d'afficher les instances de base de données, les temps d'attente, les conseils de requête, le processeur (avec avertissement et alertes critiques), la mémoire, le disque et les sessions.
Lors de l'exploration vers le bas, le tableau de bord des tendances d'une instance de base de données spécifique vous montre dans un format graphique les temps d'attente totaux (ou votre choix de temps d'attente quotidiens moyens ou typiques) pour les utilisateurs au cours d'un mois. Sur ce graphique, chaque couleur représente une instruction SQL individuelle, vous donnant une représentation visuellement attrayante de l'instruction qui prend le plus de temps à s'exécuter.
Bien que ce produit ne soit pas un véritable outil d'optimisation de requêtes SQL, certaines de ses fonctions peuvent vous y aider. Par exemple, il peut surveiller et mesurer le temps d'exécution des requêtes et il fournira également des conseils de réglage bien qu'il ait tendance à être lié à la configuration de la base de données plutôt qu'au code de la requête.
Le prix de SolarWinds Database Performance Analyzer commence à 1 995 $ et varie en fonction du nombre et du type d'instances de base de données à surveiller. Si vous souhaitez tester le produit avant de l'acheter, une version d'essai entièrement fonctionnelle de 14 jours est disponible .
2. SQL Query Tuner pour SQL Diagnostic Manager
Le gestionnaire de diagnostic SQL est l'un des meilleurs outils de surveillance de base de données disponibles. Mais en le complétant avec le tuner de requêtes SQL , vous obtenez l'un des meilleurs outils d'optimisation de requêtes SQL. Ses bienfaits sont multiples. Il identifie les requêtes SQL problématiques via le profilage de la base de données de l'analyse du temps d'attente. Il peut également vous donner des recommandations de réglage générées automatiquement avec l'assistant de réglage de requête SQL. L'outil vérifiera les performances des requêtes SQL via des tests de charge dans des environnements de production simulés.
Le SQL Query Tuner identifiera rapidement et facilement les requêtes SQL qui causent de mauvaises performances de la base de données via le profilage de la base de données et affichera une visualisation graphique de l'analyse du temps d'attente. Il surveillera une source de données entière dans un laps de temps configurable avec un profilage continu. En conséquence, vous comprendrez mieux comment SQL Server prévoit d'exécuter les requêtes SQL et les différents coûts de performance.
Cet outil présentera des suggestions de solutions générées automatiquement avec l'assistant de réglage des requêtes SQL qui fournit un contexte essentiel pour le réglage des requêtes SQL. Il propose une analyse d'index codée par couleur des index utilisés, non utilisés et manquants avec des recommandations pour des performances optimales. Vous pouvez générer des cas possibles et trouver la meilleure alternative à une instruction SQL donnée en incluant des réécritures de requêtes SQL et des injections de conseils.
Le tuner de requête SQL présente des diagrammes visuels uniques de réglage des requêtes SQL qui vous permettent de comprendre l'impact des instructions SQL sur la base de données en utilisant les diagrammes au lieu de plans d'exécution compliqués. Les index et les contraintes sur les tables et les vues sont affichés avec les statistiques de table et les jointures utilisées dans une instruction SQL (telles que les jointures cartésiennes, les jointures cartésiennes implicites et les relations plusieurs-à-plusieurs) avec les diagrammes.
Vérifiez les performances des requêtes SQL existantes et alternatives par rapport à la base de données via des tests de charge. Configurez les requêtes SQL pour qu'elles s'exécutent plusieurs fois en parallèle et pour observer comment elles répondent aux environnements de production simulés sans risquer de les tester réellement en production. À l'aide de cet outil, vous pouvez régler les requêtes SQL peu performantes pour SQL Server à partir d'une interface intuitive.
La requête SQL Tuner est un add-on au SQL Diagnostic du . Si vous ne possédez pas déjà ce produit, les deux peuvent être achetés ensemble en tant que SQL Diagnostic Manager Pro pour 2 156 $ par licence. Un essai gratuit de 14 jours sans carte de crédit est également disponible auprès du fournisseur du produit.
3. Studio de gestion SQL Server
Si votre serveur de base de données est un serveur Microsoft SQL, peut-être que le propre outil de Microsoft, SQL Server Management Studio (SSMS) , est tout ce dont vous avez besoin. Comme vous le savez peut-être, l'outil, qui a été lancé pour la première fois avec Microsoft SQL Server 2005, est utilisé pour configurer, gérer et administrer tous les composants de Microsoft SQL Server. Il comprend à la fois des éditeurs de scripts et des outils graphiques qui fonctionnent avec les objets et les fonctionnalités du service. Ce que vous ne savez peut-être pas, c'est que l'un des outils de SSMS, l'assistant de réglage du moteur de base de données SQL Server (DTA) peut être utilisé pour l'optimisation des requêtes SQL.
L'objectif principal de la DTA est d'analyser les bases de données et de formuler des recommandations. Selon la documentation officielle de Microsoft, l'outil peut vous aider à dépanner les performances d'une requête de problème spécifique, à régler un grand nombre de requêtes sur une ou plusieurs bases de données, à effectuer une analyse de simulation exploratoire des modifications potentielles de la conception physique et à gérer l'espace de stockage.
L'un des avantages de SQL Server Management Studio est son prix. Il s'agit d'un outil gratuit de Microsoft que vous pouvez utiliser pour gérer non seulement SQL Server, mais également Azure SQL Database. Ce n'est peut-être pas l'outil le plus convivial, mais compte tenu de son prix, il vaut peut-être la peine d'être examiné.
4. EverSQL
EverSQL est intéressant car c'est l'un des rares outils d'optimisation SQL en ligne. Les administrateurs peuvent utiliser cet outil pour obtenir des recommandations de réglage des requêtes et des suggestions d'amélioration de l'indexation. La prise en charge des bases de données dans EverSQL est quelque peu limitée. Cependant, il prend en charge les moteurs de base de données payants, gratuits et open source les plus populaires, notamment MSSQL, Oracle, MySQL, MariaDB et PerconaDB. En fait, puisqu'il s'agit d'un outil hors ligne qui n'a aucune connexion à votre base de données, il pourrait théoriquement optimiser et interroger SQL mais il fera un meilleur travail s'il sait quel type de moteur de base de données traitera la requête optimisée.
L'utilisation de l'outil est super simple. Vous vous connectez au site, sélectionnez le type et la version de votre base de données et collez le code de la requête SQL. Pour obtenir des recommandations d'indexation et permettre à l'outil d'appliquer des transformations de requête avancées, vous pouvez éventuellement télécharger la structure de schéma de votre base de données. Vous cliquez sur "Suivant" et en quelques secondes, vous obtenez la version optimisée de votre requête ainsi que quelques recommandations d'indexation.
EverSQL ne fait pas seulement des optimisations de requêtes, cependant. Quelques autres outils en ligne gratuits et utiles sont également proposés. Il existe, par exemple, un vérificateur et un validateur de syntaxe de requête SQL, un minificateur de requête pour les instructions SQL et un formateur de requête.
La structure de tarification d' EverSQL est simple. Vous avez le choix entre un plan gratuit qui vous offre une optimisation de requête gratuite par jour pendant 30 jours. C'est le plan d'essai. Ensuite, vous avez le forfait Basic à 29 $/mois qui comprend 10 optimisations mensuelles et le forfait Plus à 135 $/mois avec 30 optimisations par mois et une assistance par chat en direct. Des plans personnalisés peuvent également être organisés pour répondre à vos besoins spécifiques.
5. Explorateur de forfaits SentryOne
Plan Explorer est un outil gratuit de SentryOne . C'est l'un des meilleurs outils d'analyse et d'optimisation de requêtes SQL. Cet outil peut vous aider à trouver rapidement la racine des problèmes de requête SQL Server les plus difficiles. Il est composé de plusieurs modules. L'analyse d'index utilise des algorithmes de notation pour vous aider à déterminer le meilleur index pour prendre en charge une requête donnée. Vous pouvez facilement afficher les index recommandés, créer et modifier des index, et détecter et mettre à jour les anciennes statistiques.
Le module d'analyse des statistiques vous montre l'impact des paramètres de requête compilés et d'exécution sur les performances. Cela vous permet de repérer rapidement l'asymétrie des données qui peut contribuer aux problèmes de détection de paramètres, de visualiser les problèmes potentiels de clé ascendante et d'identifier les opportunités pour les index filtrés.
Le module Query Performance Profiling and Playback rejouera les requêtes et accédera à leurs statistiques de performances en direct. À l'aide de cet outil, vous pouvez lire le profil de requête pour voir exactement quels opérateurs ajoutent le plus de charge aux ressources système. Il n'est pas nécessaire d'exécuter à nouveau la requête.
Alors que la plupart des optimiseurs de requêtes SQL utilisent le coût du plan estimé, Plan Explorer peut afficher les coûts réels observés. Et vous pouvez voir la différence de coût en basculant la vue entre Estimé et Réel. Il y a plus de fonctionnalités dans cet outil gratuit que nous n'avons le temps de les présenter. Mais comme il s'agit d'un outil gratuit, vous voudrez peut-être l'essayer et voir par vous-même.
6. dbForge Studio pour SQL Server
Devart de dbForge Studio serveur SQL est un tout-en-un outil GUI du serveur SQL qui peut être utilisé pour la gestion SQL Server, l' administration, le développement, la communication des données, l' analyse, l' optimisation, et plus encore. Les développeurs SQL et les administrateurs de bases de données peuvent utiliser l'outil GUI pour accélérer presque toutes les tâches de base de données complexes telles que la conception de bases de données, l'écriture de code SQL, la comparaison de bases de données, la synchronisation de schémas et de données, la génération de données de test significatives, entre autres.
dbForge Studio for SQL Server inclut l' outil SQL Query Plan Tool , un outil d'optimisation de requête dédié. Sa fonction de diagramme de plan d'exécution permet de visualiser et d'ajuster le plan d'exécution des requêtes en identifiant les nœuds à exécution lente. L'onglet Wait Stats de l'outil vous permet de détecter facilement les goulots d'étranglement potentiels dans votre requête en affichant une liste d'événements et d'attentes qui leur sont associés. Vous pouvez également utiliser l'arborescence du plan de l'outil pour obtenir des informations sur la façon dont SQL Server exécute une instruction SELECT. Il vous montrera où l'ajout d'un index à une table ou l'optimisation de la jointure de table, par exemple, pourrait augmenter les performances.
L'outil, également connu sous le nom de T-SQL Query Profiler , est intégré aux versions Standard, Professionnelle et Entreprise de dbForge Studio pour SQL Server, au prix de 249,95 $, 499,95 $ et 699,95 $, respectivement. Un essai gratuit de 30 jours de l'ensemble du produit, et pas seulement de l'outil d'optimisation des requêtes, est disponible.