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 base de données des serveurs SQL.
Le langage définit la manière dont les requêtes peuvent être formées pour extraire d'une base de données les données précises requises. 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. Avec une complexité accrue, les performances sont 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 passons en revue les meilleurs produits, nous commencerons par discuter du quoi et de la timidité 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 allez le voir. Nous ferons de notre mieux pour trier les caractéristiques essentielles que vous devriez rechercher lorsque vous choisissez le 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 dans lequel différentes requêtes sont testées pour déterminer celle qui 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 bases de données, mais les outils externes tiers 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. La performance (c'est-à-dire le temps d'exécution) de chacun est mesurée 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 une assistance humaine importante, les meilleurs systèmes effectuent la majeure partie de leur travail en arrière-plan.
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 fortement sollicité avec 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, sur la base de ressources limitées. Cela peut réduire l'épuisement des ressources du serveur par la requête. Si l'utilisateur a exécuté la même requête à un autre moment alors que davantage de ressources serveur étaient disponibles, l'optimiseur de requête aurait pu déterminer que la limitation des ressources n'était pas un problème et ne pas utiliser les index de table, chargeant la table complète en mémoire.
Principales caractéristiques des outils d'optimisation des 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. Examinons quelques-unes des principales fonctionnalités que l'on trouve couramment dans les outils d'optimisation des requêtes SQL.
Réglage SQL de base
Il s'agit de la fonctionnalité principale des outils d'optimisation des requêtes SQL. Il s'agit du processus de réécriture différente des instructions SQL dans le but d'améliorer les performances de la requête tout en obtenant toujours 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 seule. Il est important de choisir un outil qui peut prendre en charge tous les moteurs que vous utilisez,
Prise en charge de la base de données basée sur le cloud
Certains outils d'optimisation des requêtes SQL sont capables d'analyser et d'optimiser les 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 des 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 à l'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 avec 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 société qui jouit 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 années 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 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 traitant d'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, ce dont vous avez besoin, cependant, est le Analyseur de performances de base de données SolarWinds (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 met l'accent sur le temps entre une demande 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.
- ESSAI GRATUIT:Analyseur de performances de base de données SolarWinds
- Lien de téléchargement: https://www.solarwinds.com/database-performance-analyzer
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 de visualiser 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, le tableau de bord des tendances d'une instance de base de données spécifique vous montre sous forme 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 des 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'ils aient tendance à être liés à la configuration de la base de données plutôt qu'au code de la requête.
Le prix pour le Analyseur de performances de base de données SolarWinds commence à 1 995 $ et varie selon le nombre et le 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ête SQL , vous obtenez l'un des meilleurs outils d'optimisation des 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 des temps d'attente. Il peut également vous donner des recommandations de réglage générées automatiquement avec l'assistant de réglage des requêtes SQL. L'outil vérifiera les performances des requêtes SQL via des tests de charge dans des environnements de production simulés.
Le Accordeur de requête SQL 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 des 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 solutions suggérées 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 d'indices.
Le Tuner de requête SQL propose 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 à l'aide des 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 observez comment elles répondent aux environnements de production simulés sans risquer de les tester 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.
Le Accordeur de requête SQL est un complément à la Gestionnaire de diagnostic SQL . Si vous ne possédez pas déjà ce produit, les deux peuvent être achetés ensemble en tant que Gestionnaire de diagnostic SQL 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.SQL Server Management Studio
Si votre serveur de base de données est un Microsoft SQL Server, peut-être 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, le Conseiller de réglage du moteur de base de données SQL Server (DTA) peut être utilisé pour l'optimisation des requêtes SQL.
Le but premier du DTA est d'analyser les bases de données et de donner 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 exploratoire de simulation des modifications potentielles de la conception physique et à gérer l'espace de stockage.
L'une des meilleures choses à propos 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'y jeter un coup d'œil.
Quatre.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. Prise en charge de la base de données dans EverSQL est quelque peu limité. 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, en théorie, 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 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 des recommandations d'indexation.
EverSQL ne fait pas que des optimisations de requêtes. Quelques autres outils en ligne gratuits et utiles sont également proposés. Il existe, par exemple, un vérificateur et validateur de syntaxe de requête SQL, un minimiseur de requête pour les instructions SQL et un formateur de requête.
La structure tarifaire de 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 plan de base à 29 $/mois qui comprend 10 optimisations mensuelles et le plan 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
Explorateur de forfaits est un outil gratuit de SentryOne . C'est l'un des meilleurs outils d'analyse et d'optimisation des requêtes SQL. Cet outil peut vous aider à accéder 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 reniflage des paramètres, de visualiser les problèmes potentiels de clé ascendante et d'identifier les opportunités pour les index filtrés.
Le module de profilage et de lecture des performances des requêtes relira 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 sur les 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é, Explorateur de forfaits 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 s dbForge Studio pour serveur SQL est un outil d'interface graphique de serveur SQL tout-en-un qui peut être utilisé pour la gestion, l'administration, le développement, la création de rapports de données, l'analyse, l'optimisation, etc. de SQL Server. Les développeurs SQL et les administrateurs de base 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 pour serveur SQL comprend le Outil de plan de requête SQL , un outil dédié à l'optimisation des requêtes. Sa fonctionnalité 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 des événements et des attentes qui leur sont associés. Vous pouvez également utiliser l'arborescence de plan de l'outil pour obtenir des informations sur la façon dont le serveur SQL 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 appelé Profileur de requêtes T-SQL , est intégré aux versions Standard, Profesional et Enterprise de dbForge Studio for 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.