Tous les produits
Search
Centre de documentation

Database Autonomy Service:Gouvernance des requêtes

Dernière mise à jour :Aug 11, 2026

Database Autonomy Service (DAS) analyse les données hors ligne pour examiner et étiqueter automatiquement les requêtes SQL lentes de toutes vos instances de la veille, chaque jour à 01:00. DAS classe automatiquement les requêtes SQL lentes, établit les priorités d'optimisation et fournit des suggestions de gouvernance ainsi que des options d'exportation des données.

Prérequis

  • Votre instance de base de données doit être l'une des suivantes :

    • ApsaraDB RDS for MySQL

    • PolarDB for MySQL

    • MyBase MySQL

    • ApsaraDB RDS for PostgreSQL

  • Cette fonctionnalité prend en charge les instances de base de données situées dans les régions de Chine continentale, de Chine (Hong Kong) et de Singapour.

    Remarque

    Depuis le 1er avril 2023, la gouvernance des requêtes prend également en charge les instances de base de données dans les régions de Chine (Hong Kong) et de Singapour.

  • Le service O&M est activé.

Tutoriel vidéo

Limites

  • La gouvernance des requêtes repose sur une analyse hors ligne T+1. Si vous étiquetez une requête SQL comme Optimization Not Required, la variation du nombre de requêtes Optimizable SQL n'apparaîtra que le lendemain.

  • Les étiquettes SQL prédéfinies par DAS ne peuvent pas être désactivées.

  • Pour chaque instance de base de données, DAS analyse uniquement les 200 requêtes SQL lentes les plus fréquentes en nombre d'exécutions. Par conséquent, le nombre maximum de Slow SQL Templates par instance est limité à 200.

Concepts clés

Terme

Description

Optimizable SQL

Après exclusion des SQL statements that do not require optimization de l'ensemble des instructions SQL lentes, les instructions restantes constituent les Optimizable SQL.

SQL Not Requiring Optimization

Cette catégorie inclut les requêtes SQL automatiquement étiquetées par DAS comme Ignored ainsi que les requêtes manuellement étiquetées par les utilisateurs comme Optimization Not Required.

Ignored

DAS étiquette automatiquement certaines instructions SQL comme Optimization Not Required, notamment celles commençant par show, create, xa, commit, rollback, select sleep ou explain.

Procédure

  1. Connectez-vous à la console DAS.

  2. Dans le volet de navigation de gauche, sélectionnez Intelligent O&M Center > Query Governance.

  3. Sur la page Query Governance, consultez les résultats de la gouvernance des requêtes.

    Filtrez par plage horaire, région et moteur, ou saisissez un ID d'instance pour afficher les résultats d'une instance spécifique.

    • Query Governance Overview : Consultez les résultats après l'étiquetage et la classification des modèles SQL par le système.

      Remarque

      DAS ne comptabilise les Failed SQL Executions que sur les instances pour lesquelles l'édition Enterprise Edition de DAS est activée.

    • Query Governance Trend : Visualisez l'évolution des résultats de la gouvernance des requêtes sur la plage horaire sélectionnée.

    • Top Rankings : Consultez les listes des Best-performing Instances et des Worst-performing Instances.

      • Worst-performing Instances : Classe les instances par ordre décroissant du nombre d'exécutions de requêtes lentes afin d'identifier les instances les plus problématiques.

      • Best-performing Instances : Classe les instances par ordre croissant selon la variation du nombre d'exécutions de requêtes lentes. Une valeur négative indique une réduction des exécutions de requêtes lentes (bonne optimisation), tandis qu'une valeur positive indique une augmentation.

      DAS recommande de se concentrer sur les classements relatifs aux Optimizable SQL.

    • SQL to Be Optimized : Définissez des filtres pour identifier les instructions SQL nécessitant une gouvernance.

      Remarque

      Ces filtres sont combinés selon une logique ET.

      • Séparez plusieurs noms de bases de données par des virgules (,) pour les combiner selon une logique OU.

      • Séparez plusieurs mots-clés SQL par des espaces pour les combiner selon une logique ET.

      • Séparez plusieurs noms d'utilisateurs de base de données par des virgules (,) pour les combiner selon une logique OU.

      • La sélection de plusieurs étiquettes de règles les combine selon une logique OU.

      • Dans la colonne Actions d'un échantillon SQL cible, cliquez sur Suggestions pour afficher les suggestions de gouvernance détaillées.

      • Dans la colonne Actions d'un échantillon SQL cible, cliquez sur Add Tag pour étiqueter manuellement l'instruction SQL. Pour plus d'informations sur les étiquettes, consultez la section Étiquetage manuel.

        Vous pouvez également sélectionner et étiqueter plusieurs instructions SQL simultanément.

      • Dans la colonne Actions d'un échantillon SQL cible, cliquez sur Samples pour afficher les détails de l'échantillon de journal de requêtes lentes correspondant à l'instruction SQL.

      • Dans la colonne Actions d'un échantillon SQL cible, cliquez sur Trend pour afficher les détails de l'analyse du journal de requêtes lentes pour l'instruction SQL. Pour plus d'informations sur l'analyse des journaux de requêtes lentes, consultez la section Journaux de requêtes lentes.

      Exportez et partagez les données des instructions SQL optimisables selon vos besoins. Pour plus d'informations, consultez les bonnes pratiques.

    • Failed SQL : Définissez des filtres pour identifier les instructions SQL que vous souhaitez consulter.

      Remarque
      • DAS ne comptabilise les Failed SQL que sur les instances pour lesquelles l'édition Enterprise Edition de DAS est activée.

      • Vous pouvez filtrer par nom de base de données et par mot-clé SQL. Ces deux filtres sont combinés selon une logique ET.

        • Plusieurs noms de bases de données sont séparés par des virgules (,) et combinés selon une logique OU.

        • Plusieurs mots-clés SQL sont séparés par des espaces et combinés selon une logique ET.

      Dans la colonne Actions d'un échantillon SQL cible, cliquez sur Samples pour afficher les détails de l'échantillon correspondant à l'instruction SQL.

Bonnes pratiques

  • Utilisez les étiquettes pour déterminer s'il convient d'optimiser les requêtes SQL :

    La gouvernance classe les instructions de la liste Overall Slow SQL en deux catégories : Optimization Not Required et Optimizable SQL. Utilisez les étiquettes SQL suivantes pour filtrer et hiérarchiser ces instructions.

    ID

    Nom de l'étiquette

    Niveau

    Recommandation

    Description

    NEW_SQL

    Nouvelle requête SQL lente

    Critique

    ✔️

    Une requête SQL lente qui n'est pas apparue au cours des sept derniers jours.

    DAS_IGNORE

    Ignorée par DAS

    Avis

    ➖

    DAS étiquette automatiquement la requête comme ne nécessitant pas d'optimisation. Cela concerne par exemple les instructions SQL commençant par show, create, xa, commit, rollback, select sleep ou explain.

    FUZZY_LIKE

    Requête LIKE floue

    Avis

    ➖

    Une clause like est utilisée pour la correspondance floue, ce qui empêche l'utilisation d'un index.

    HAS_EXPR

    Contient une expression

    Avis

    ➖

    La requête contient une expression. La colonne impliquée dans le calcul ne peut pas utiliser d'index.

    LARGE_IN_LIST

    Grande liste IN

    Avis

    ➖

    La clause IN contient plus de 200 éléments, ce qui est probablement généré par un programme. Les indexes ne peuvent pas être utilisés sur les colonnes concernées.

    SELECT_STAR

    Sélection de toutes les colonnes

    Avis

    ➖

    Lorsque vous utilisez SELECT, spécifiez uniquement les champs requis afin d'éviter les problèmes de performance et le gaspillage de ressources liés au renvoi de colonnes inutiles.

    INDEX_ADVISOR

    Suggestion d'index

    Avis

    ✔️

    Une suggestion de création d'index pour accélérer l'exécution SQL.

    COMPLEX_JOIN

    JOIN complexe

    Avis

    ➖

    Évitez de faire un join sur plus de trois tables. Les champs utilisés pour la jointure doivent avoir des types de données identiques. Pour les jointures multi-tables, assurez-vous que les champs de jointure sont indexés.

    CROSS_DB

    Requête inter-bases de données

    Avis

    ➖

    Lors de la migration de bases de données et de tables entre instances, les requêtes inter-bases de données peuvent devenir indisponibles.

    SUBQUERY

    Contient une sous-requête

    Avis

    ➖

    La requête contient une sous-requête. Envisagez de la réécrire avec un JOIN pour de meilleures performances.

    DEEP_PAGING

    Pagination profonde

    Critique

    ➖

    La requête utilise une clause LIMIT pour la pagination profonde. Il est recommandé de réécrire la requête avec une jointure.

    WITHOUT_PREDICATE

    Absence de prédicat

    Critique

    ✔️

    L'instruction ne contient aucun prédicat. Vérifiez si elle implique un balayage complet de la table.

    NULL_COMPARE

    Erreur de comparaison NULL

    Critique

    ➖

    Utilisez IS NULL ou IS NOT NULL pour vérifier la présence d'une valeur NULL, car une comparaison directe entre une valeur et NULL renvoie toujours NULL.

    COUNT_NOT_STAR

    Syntaxe COUNT incorrecte

    Critique

    ➖

    Utilisez COUNT() plutôt que count(nom_colonne) ou count(constante). count() est la syntaxe standard pour le comptage des lignes telle que définie dans SQL92. Elle est indépendante de la base de données et n'est pas affectée par les valeurs NULL ou non-NULL. count(nom_colonne) ne compte pas les lignes où la colonne a une valeur NULL.

    LARGE_ROWS_EXAMINED

    Nombre excessif de lignes analysées

    Avis

    ➖

    La requête analyse en moyenne plus de 50 000 lignes. Un balayage excessif consomme davantage de ressources, ce qui ralentit la requête et peut impacter les performances globales de la base de données.

    Remarque

    Envisagez d'utiliser des conditions de filtre plus sélectives.

    LARGE_ROWS_SENT

    Nombre excessif de lignes renvoyées

    Avis

    ➖

    La requête renvoie en moyenne plus de 5 000 lignes. Envisagez de réduire le nombre de lignes renvoyées.

    NO_ADVICE

    Aucune suggestion

    Avis

    ➖

    Aucune suggestion d'analyse n'est disponible.

    PERIOD_SQL

    SQL périodique

    Avis

    ➖

    Exécutée à une heure fixe chaque jour.

    Concentrez-vous sur les Optimizable SQL. Utilisez les étiquettes ci-dessous pour marquer les instructions SQL comme Optimization Not Required et réduire le nombre d'instructions Optimizable SQL. Les étiquettes suivantes prennent en charge l'étiquetage manuel.

    ID

    Nom de l'étiquette

    Niveau

    Description

    USER_IGNORE

    Pas besoin d'optimisation

    Avis

    Après l'ajout de cette étiquette, DAS exclut la requête des statistiques Optimizable SQL du lendemain.

    DAS_IMPORTANT

    SQL important

    Avis

    Marque la requête SQL comme importante.

    DAS_NOT_IMPORTANT

    SQL non important

    Avis

    Marque la requête SQL comme non importante.

    DAS_IN_PLAN

    Optimisation planifiée

    Avis

    Marque la requête SQL comme prévue pour optimisation.

  • Exportez les données :

    • Cliquez sur Create Export Task pour télécharger toutes les données actuellement affichées dans l'onglet SQL Details.

      Remarque

      Les données exportées restent disponibles en téléchargement pendant trois jours.

    • Créez des tâches de téléchargement avec différents critères de filtrage, tels que des instances ou des règles, et attribuez-les à différents responsables pour optimisation.

    • Sinon, sélectionnez plusieurs enregistrements SQL pour exporter uniquement ces éléments.

  • Partagez les données :

    Partagez les requêtes SQL lentes filtrées avec les membres de votre équipe de deux manières :

    • Sélectionnez plusieurs enregistrements SQL et cliquez sur Batch Sharing. Le système génère un lien court. Lorsque les utilisateurs disposant des autorisations d'accès à la console DAS cliquent sur ce lien, ils ne voient que les enregistrements SQL que vous avez sélectionnés.

    • Sinon, cliquez sur Share (à côté de Export) pour générer une URL qui capture votre vue actuelle, y compris tous les filtres. Les utilisateurs disposant des autorisations de la console DAS peuvent ouvrir l'URL pour voir les mêmes données sans reconfigurer les filtres.

Référence API

API

Description

CreateQueryOptimizeTag

Ajoute une étiquette à une requête SQL cible.

GetQueryOptimizeExecErrorStats

Récupère les données de modèle pour les exécutions SQL ayant échoué.

GetQueryOptimizeExecErrorSample

Récupère les données d'échantillon pour les exécutions SQL ayant échoué.

GetQueryOptimizeSolution

Récupère les suggestions de gouvernance pour une requête.

GetQueryOptimizeRuleList

Récupère la liste des règles de gouvernance des requêtes.

GetQueryOptimizeDataTrend

Récupère les données de tendance pour la gouvernance des requêtes.

GetQueryOptimizeDataTop

Récupère les données pour les listes des instances les plus performantes et les moins performantes.

GetQueryOptimizeDataStats

Récupère les données de modèle pour la gouvernance des requêtes.

GetQueryOptimizeTag

Récupère les étiquettes d'une requête SQL spécifiée.

GetQueryOptimizeShareUrl

Récupère l'URL partageable pour les résultats de la gouvernance des requêtes.