Tous les produits
Search
Centre de documentation

Database Autonomy Service:SQL Explorer

Dernière mise à jour :Aug 10, 2026

Utilisez ️SQL Explorer dans SQL Explorer and Audit pour diagnostiquer l'état des requêtes SQL et résoudre les problèmes de performances.

Prérequis

  • L'instance de base de données est ajoutée à DAS et son état de connexion est Normal Connection.

  • La fonctionnalité SQL Explorer and Audit est activée pour l'instance. Pour plus d'informations, consultez Activer SQL Explorer and Audit.

Fonctionnement

Une fois activé, SQL Explorer enregistre toutes les opérations DQL, DML et DDL directement depuis le noyau de la base de données, avec un impact négligeable sur le processeur.

Notes d'utilisation

  • Les données analytiques et statistiques de SQL Explorer, à l'exclusion des détails SQL, sont conservées pendant 30 jours.

  • Les données détaillées des requêtes SQL dans SQL Explorer sont conservées selon la durée configurée pour DAS Enterprise Edition.

  • La désactivation de SQL Explorer and Audit n'affecte pas vos services, mais efface toutes les données stockées pour cette fonctionnalité. Avant de désactiver la fonction, exportez les données requises vers une machine locale. Pour plus d'informations, consultez Désactiver SQL Explorer and Audit.

  • Lorsqu'une instruction SQL est exécutée sur une instance ApsaraDB RDS for MySQL associée à PolarDB-X 1.0, plusieurs journaux SQL sont générés sur l'instance ApsaraDB RDS for MySQL en raison du sharding.

  • La migration de données peut provoquer des déconnexions transitoires, entraînant potentiellement une perte de données dans SQL Explorer.

  • Sous une charge très élevée, un petit nombre d'enregistrements peut être perdu, ce qui peut fausser les statistiques incrémentielles des données dans SQL Explorer.

  • Un paramètre contrôle la longueur maximale enregistrée d'une instruction SQL. SQL Explorer tronque toute instruction dépassant cette limite. Étant donné qu'un préfixe est ajouté lors de la collecte des données, la longueur réellement enregistrée est légèrement inférieure à la valeur configurée.

    Remarque
    • Pour les versions 5.6 et 5.7 d'ApsaraDB RDS for MySQL et de PolarDB for MySQL, la longueur enregistrée est contrôlée par le paramètre loose_rds_audit_max_sql_size.

    • Pour la version 8.0 d'ApsaraDB RDS for MySQL et de PolarDB for MySQL, la longueur enregistrée est contrôlée par le paramètre loose_rds_audit_log_event_buffer_size.

  • Pour les instances ApsaraDB RDS for PostgreSQL avec PgBouncer activé, les instructions SQL exécutées via PgBouncer ne sont pas enregistrées par SQL Explorer.

Procédure

  1. Connectez-vous à la console DAS.

  2. Dans le volet de navigation de gauche, cliquez sur Intelligent O&M Center > Instance Monitoring.

  3. Localisez l'instance cible et cliquez sur son ID pour ouvrir la page des détails de l'instance.

  4. Dans le volet de navigation de gauche, cliquez sur Request Analysis > SQL Explorer and Audit, puis sélectionnez l'onglet SQL Explorer.

  5. Sélectionnez une fonctionnalité selon vos besoins :

    Remarque

    Lorsque vous sélectionnez une plage de temps, l'heure de fin doit être postérieure à l'heure de début et l'intervalle ne peut pas dépasser un jour. Après avoir activé DAS Enterprise Edition pour l'instance, vous pouvez interroger les données de n'importe quel jour dans la limite de la durée de conservation de SQL Explorer.

    • Display by Time Range : Sélectionnez une plage de temps pour afficher les résultats de SQL Explorer. Vous pouvez consulter la Execution Duration Distribution, la Execution Duration et les Executions de toutes les instructions SQL dans la plage sélectionnée. Vous pouvez également afficher les détails de toutes les instructions SQL dans la section Full Request Statistics et exporter les résultats.

      Remarque

      Vous pouvez exporter jusqu'à 1 000 journaux SQL. Pour obtenir plus de journaux SQL ou couvrir une plage de temps plus longue, utilisez la fonctionnalité Audit.

    • Display by Comparison : Sélectionnez les points temporels que vous souhaitez comparer dans les résultats de SQL Explorer. Vous pouvez visualiser une comparaison de la Execution Duration Distribution, de la Execution Duration et des Executions pour toutes les instructions SQL. Vous pouvez également consulter les résultats détaillés de la comparaison dans la section Requests by Comparison.

    • Source Statistics : Sélectionnez une plage de temps pour afficher les statistiques relatives aux sources SQL. Vous pouvez consulter les informations sur la source de toutes les instructions SQL dans la plage sélectionnée.

    • SQL Review : Analyse la charge de travail d'une instance de base de données pour une plage de temps sélectionnée et une plage de temps de référence. Cette fonction effectue également une analyse approfondie des instructions SQL exécutées sur l'instance et fournit des suggestions d'optimisation des index, des recommandations de réécriture SQL, ainsi que des analyses des TOP SQL, des nouvelles requêtes SQL, des échecs SQL, des caractéristiques SQL, des modifications d'exécution, des dégradations de performances et des tables générant le plus de trafic. Pour plus d'informations, consultez SQL Review.

    • Related SQL Identification : Sélectionnez les métriques que vous souhaitez afficher et cliquez sur Analysis. Au bout de 1 à 5 minutes, le système identifie et affiche les instructions SQL dont les tendances correspondent le plus étroitement aux métriques sélectionnées dans la plage de temps spécifiée.

    Important
    • Pour SQL Explorer and Audit utilisant le stockage chaud et froid, le système déplace les données de plus de sept jours vers le stockage froid. Lorsque vous analysez des données détaillées SQL datant de plus de sept jours, le système crée une tâche pour recalculer et analyser les données. Vous pouvez suivre la progression et l'historique des tâches sur la page Task list.

    • Les requêtes portant sur des données SQL Explorer and Audit datant de plus de sept jours sont facturées selon le modèle de paiement à l'utilisation. Pour plus d'informations, consultez les détails de facturation.

Résultats

  • Execution Duration Distribution : Indique la répartition des durées d'exécution SQL dans la plage de temps sélectionnée. Les durées sont divisées en sept intervalles, calculés chaque minute :

    • [0,1]ms représente le pourcentage d'exécutions SQL dont la durée est comprise entre 0 ms et 1 ms (inclus).

    • (1,2]ms représente le pourcentage d'exécutions SQL dont la durée est supérieure à 1 ms et inférieure ou égale à 2 ms.

    • (2,3]ms représente le pourcentage d'exécutions SQL dont la durée est supérieure à 2 ms et inférieure ou égale à 3 ms.

    • (3,10]ms représente le pourcentage d'exécutions SQL dont la durée est supérieure à 3 ms et inférieure ou égale à 10 ms.

    • (10,100]ms représente le pourcentage d'exécutions SQL dont la durée est supérieure à 10 ms et inférieure ou égale à 100 ms.

    • (0.1,1]s représente le pourcentage d'exécutions SQL dont la durée est supérieure à 0,1 s et inférieure ou égale à 1 s.

    • >1s représente le pourcentage d'exécutions SQL dont la durée est supérieure à 1 s.

    Remarque

    Les couleurs proches du bleu indiquent de meilleures performances SQL. Les couleurs proches de l'orange et du rouge signalent des performances moins bonnes.

  • Execution Duration (SQL RT) : Affiche la durée d'exécution des instructions SQL dans la plage de temps sélectionnée.

  • Full Request Statistics : Affiche le texte SQL, le pourcentage de durée, la durée moyenne d'exécution et la tendance d'exécution pour chaque type d'instruction SQL dans la plage sélectionnée.

    Remarque

    Le pourcentage de durée correspond au ratio entre la durée totale d'exécution d'un type SQL spécifique et la durée totale tous types confondus. Un pourcentage plus élevé indique une consommation de ressources plus importante sur l'instance MySQL.

  • SQL ID : Cliquez sur un SQL ID pour afficher la tendance des performances et les exemples de requêtes SQL correspondants.

  • SQL Sample : Utilisez un SQL Sample pour identifier quelle application cliente a initié l'instruction SQL.

    Remarque

    Les exemples SQL utilisent l'encodage UTF-8.

FAQ

Q : Que signifie l'instruction ️SQL Explorerlogout! dans la section Full Request Statistics de ️SQL Explorer ?

R : logout! indique une déconnexion. Sa durée correspond au temps écoulé entre la dernière interaction et le moment de la déconnexion, représentant ainsi le temps d'inactivité de la connexion. Un statut 1158 dans la colonne Status indique une déconnexion réseau, qui peut être causée par :

  • L'expiration du délai de connexion côté client.

  • Une déconnexion inattendue du serveur.

  • Une réinitialisation de la connexion par le serveur car la durée définie par interactive_timeout ou wait_timeout a été dépassée.

Q : Dans la section ️SQL ExplorerSource Statistics de ️SQL Explorer, pourquoi un signe pour cent (%) apparaît-il comme Access Source ?

R : Cela peut se produire lors de l'utilisation d'une procédure stockée. Pour reproduire ce comportement, suivez l'exemple ci-dessous :

Remarque

Cet exemple utilise une instance ApsaraDB RDS for MySQL, un compte de test nommé test_user et une base de données de test nommée testdb.

  1. Dans la console ApsaraDB RDS, créez un compte standard et autorisez-le à accéder à une base de données. Pour plus d'informations, consultez (Obsolète, redirection vers « Étape 1 ») Créer une base de données et un compte.

  2. Utilisez le compte de test pour vous connecter à l'instance de base de données depuis la ligne de commande. Pour plus d'informations, consultez (Obsolète, redirection vers « Étape 2 ») Se connecter à une instance ApsaraDB RDS for MySQL à l'aide d'un client ou de la CLI.

  3. Basculez vers la base de données de test et créez la procédure stockée suivante.

    -- Switch to the test database
    USE testdb;
    
    -- Create a stored procedure
    DELIMITER $$
    DROP PROCEDURE IF EXISTS `das` $$
    CREATE DEFINER=`test_user`@`%` PROCEDURE `das`()
    BEGIN
    SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID();
    END $$
    DELIMITER;
  4. Utilisez un compte privilégié pour vous connecter à l'instance de base de données. Pour plus d'informations, consultez (Obsolète, redirection vers « Étape 2 ») Se connecter à une instance ApsaraDB RDS for MySQL à l'aide d'un client ou de la CLI.

  5. Appelez la procédure stockée.

    -- Switch to the test database
    USE testdb;
    
    -- Call the stored procedure
    CALL das();
    
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | ID     | USER      | HOST   | DB     | COMMAND | TIME | STATE     | INFO                                                                    |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+
    | 487818 | test_user | %:2065 | testdb | Query   |    0 | executing | SELECT * FROM information_schema.processlist WHERE Id = CONNECTION_ID() |
    +--------+-----------+--------+--------+---------+------+-----------+-------------------------------------------------------------------------+

Q : Pourquoi le nom de la base de données dans la section Logs diffère-t-il de celui présent dans l'instruction SQL ?

R : Le nom de la base de données affiché dans la section Logs est récupéré à partir de la session, tandis que le nom de la base de données dans l'instruction SQL est spécifié par l'utilisateur. Ces noms peuvent différer dans des scénarios tels que les requêtes inter-bases de données ou le SQL dynamique, où la saisie de l'utilisateur ou la conception de la requête détermine le nom de la base de données dans l'instruction.

Q : L'activation de SQL Explorer and Audit affecte-t-elle les performances de la base de données ? Quel est l'impact ?

R : Oui, mais l'impact est minime et pratiquement imperceptible.

L'impact sur les ressources spécifiques est le suivant :

  • CPU et mémoire : La consommation est extrêmement faible et peut être ignorée.

  • Espace de stockage : La fonctionnalité stocke principalement des informations d'audit. Toutefois, DAS Enterprise Edition stocke ces données côté DAS, de sorte qu'elle ne consomme pas l'espace de stockage de votre instance de base de données.

  • Réseau : Aucun impact sur les performances réseau.

  • Performances du disque : Aucun impact. Les données d'audit sont écrites dans le stockage DAS, et non sur les disques de l'instance de base de données.

Q : Pourquoi une instruction SQL capturée est-elle incomplète ? Comment afficher l'instruction complète ?

R : Cela se produit si l'instruction SQL exécutée est trop longue. Dans SQL Explorer, recherchez l'ID de thread ou l'ID de transaction correspondant pour afficher l'instruction complète.

Q : Dans les journaux d'audit d'une instance ApsaraDB RDS for PostgreSQL, pourquoi certaines instructions SQL sont-elles affichées sous la forme - ?

R : Lorsque le paramètre log_statement d'une instance ApsaraDB RDS for PostgreSQL est défini sur all, les instructions vides envoyées par le client sont également enregistrées dans le journal d'audit. Elles apparaissent sous la forme - dans la colonne de l'instruction SQL, ce qui est un comportement attendu. Examinez le code côté client pour optimiser la logique d'envoi des instructions vides.

API connexes

API

Description

GetErrorRequestSample

Interroge de manière asynchrone jusqu'à 20 exemples de requêtes SQL ayant échoué à partir des résultats SQL Explorer d'une instance de base de données dans une plage de temps spécifiée.

GetAsyncErrorRequestStatResult

Récupère de manière asynchrone le nombre d'échecs d'exécution pour une instruction SQL spécifiée à partir des résultats SQL Explorer d'une instance de base de données.

GetAsyncErrorRequestListByCode

Interroge de manière asynchrone les ID SQL des instructions ayant généré un code d'erreur MySQL spécifié à partir des résultats SQL Explorer d'une instance de base de données.

GetAsyncErrorRequestStatByCode

Interroge de manière asynchrone les codes d'erreur MySQL et le nombre de requêtes SQL correspondant à chaque code d'erreur à partir des résultats SQL Explorer d'une instance de base de données.

GetFullRequestOriginStatByInstanceId

Recueille des statistiques sur les données de requêtes complètes à partir des résultats SQL Explorer d'une instance de base de données, classées par source d'accès.

GetFullRequestStatResultByInstanceId

Recueille de manière asynchrone des statistiques sur les données de requêtes complètes à partir des résultats SQL Explorer d'une instance de base de données, classées par ID SQL.

GetFullRequestSampleByInstanceId

Interroge jusqu'à 20 exemples SQL par ID SQL à partir des résultats SQL Explorer d'une instance de base de données.

GetDasSQLLogHotData

Interroge les détails des données en stockage chaud des sept derniers jours pour SQL Explorer and Audit d'une instance de base de données.

Bonnes pratiques

Résoudre les problèmes de requêtes SQL lentes