Database Autonomy Service (DAS) propose une fonctionnalité d'optimisation SQL qui génère automatiquement des résultats de diagnostic, des suggestions d'optimisation et une estimation des gains de performance. Consultez ces résultats pour décider d'appliquer ou non les suggestions. Cette rubrique explique comment utiliser la fonctionnalité d'optimisation SQL.
Prérequis
-
Le moteur de base de données doit être l'un des suivants :
-
RDS for MySQL
RemarqueLes éditions Basic et Cluster de RDS for MySQL ne sont pas prises en charge.
MyBase MySQL
-
PolarDB for MySQL
RemarqueLes clusters à nœud unique (anciennement instances autonomes) de PolarDB for MySQL ne sont pas pris en charge.
-
PolarDB-X 2.0
RemarqueLes instances PolarDB-X 2.0 dont la version majeure est
5.4.13et dont la version mineure se situe dans la plage[16415631,16504348]ne sont pas prises en charge. Pour afficher la version de votre instance PolarDB-X 2.0, consultez la rubrique Afficher et mettre à niveau la version d'une instance. MongoDB
-
L'instance cible est connectée à DAS. Pour plus d'informations, consultez la rubrique Connecter une instance à DAS.
L'état d'accès de l'instance cible est Normal Access.
Limitations
Il est impossible de diagnostiquer ou d'optimiser les instructions SQL portant sur des tables utilisant le moteur X-Engine.
Dans PolarDB-X, si vous exécutez une instruction SQL via une instruction préparée, le journal des requêtes lentes enregistre séparément le modèle de l'instruction (par exemple,
select * from test where a = ? and b = ?) et les paramètres liés (par exemple,params: [1, 2]). Ce format n'étant pas directement exécutable en tant qu'instruction SQL valide, les fonctionnalités s'appuyant sur l'instruction originale pour l'analyse ou l'optimisation peuvent être limitées.
Créer une analyse SQL visuelle à partir des journaux des requêtes lentes
Cette fonctionnalité présente les flux d'exécution SQL complexes sous un format visuel intuitif. Son interface graphique affiche clairement le chemin d'exécution de la requête, l'efficacité des nœuds et les goulots d'étranglement potentiels, ce qui vous aide à identifier et résoudre rapidement les problèmes lors de l'optimisation SQL, des revues de code et des contrôles de santé.
L'optimisation SQL sur la page Slow Log Analysis est prise en charge uniquement pour les instances RDS for MySQL 5.6, 5.7, and 8.0 et PolarDB for MySQL 5.6, 5.7, and 8.0.
Connectez-vous à la console DAS.
Dans le volet de navigation de gauche, cliquez sur .
Recherchez l'instance cible et cliquez sur son ID pour ouvrir la page des détails de l'instance.
Dans le volet de navigation de gauche, cliquez sur Request Analysis > Slow Logs.
-
Sur la page Slow Log Analysis :
Sous l'onglet Slow Log Statistics, recherchez le modèle SQL cible et cliquez sur Optimize dans la colonne Actions.
Sous l'onglet Slow Log Details , repérez l'instruction SQL cible et cliquez sur Optimize dans la colonne Actions .
-
Dans la boîte de dialogue qui s'affiche, cliquez sur Create Plan .
-
Sélectionnez un type de nœud d'exécution.
Standby node (par défaut) : nœud de secours de l'instance actuelle. Ce nœud est principalement utilisé pour l'analyse régulière des requêtes.
Event node : nœud métier sur lequel l'instruction SQL a été réellement exécutée. Ce nœud est adapté au dépannage et à l'optimisation.
-
Cliquez sur Confirm Creation pour créer un Visual Execution Plan .
Plan d'exécution visuel
Optimiser le SQL depuis la page Instance Sessions
Les instances MySQL auto-gérées, MongoDB et RDS for PostgreSQL ne prennent pas en charge l'optimisation SQL sur la page Instance Sessions .
Connectez-vous à la console DAS.
Dans le volet de navigation de gauche, cliquez sur .
Recherchez l'instance cible et cliquez sur son ID pour ouvrir la page des détails de l'instance.
Dans le volet de navigation de gauche, cliquez sur Instance Sessions .
Dans la zone Instance Sessions , sélectionnez la session à optimiser et cliquez sur Optimize .
-
Dans la boîte de dialogue SQL Diagnostic Optimization qui s'affiche, consultez les résultats du diagnostic SQL.
Si vous acceptez la suggestion, cliquez sur Copy en haut à droite et collez l'instruction SQL optimisée dans votre client de base de données ou dans DMS pour l'exécuter. Si vous n'acceptez pas la suggestion, cliquez sur Cancel pour fermer la boîte de dialogue.
RemarqueDAS diagnostique les instructions SQL en fonction de leur complexité, du volume de données des tables et de la charge de la base de données. Un diagnostic peut prendre plus de 20 secondes. Ensuite, le moteur fournit des résultats de diagnostic, des suggestions d'optimisation et une estimation des gains de performance que vous pouvez consulter et appliquer.
Une fois le diagnostic terminé, la page affiche l'SQL original, le plan d'exécution (incluant des colonnes telles que select_type, type et rows), les résultats du diagnostic (incluant les instructions DDL pour les suggestions d'index row-store et les détails des index), les avantages de l'optimisation (par exemple, « Amélioration attendue des performances : 0,55x » et « Gains d'optimisation faibles ») et les suggestions d'optimisation des instructions.
Afficher l'historique des diagnostics SQL
Connectez-vous à la console DAS.
Dans le volet de navigation de gauche, cliquez sur .
Recherchez l'instance cible et cliquez sur son ID pour ouvrir la page des détails de l'instance.
Dans le volet de navigation de gauche, cliquez sur Request Diagnostic History . Ici, vous pouvez afficher l'historique des diagnostics SQL de l'instance, qui inclut des détails tels que le contenu SQL, l'état du diagnostic, l'heure et les résultats.