Tous les produits
Search
Centre de documentation

PolarDB:Utilisation

Dernière mise à jour :Aug 11, 2026

SQL Trace enregistre les plans d'exécution et les statistiques d'exécution des instructions SQL de votre cluster PolarDB for MySQL. Cette fonctionnalité permet de détecter les régressions de performance liées aux changements de plans d'exécution et d'identifier les instructions SQL les plus consommatrices de ressources.

Prérequis

Avant de commencer, assurez-vous que votre cluster exécute l'une des versions suivantes :

  • PolarDB for MySQL 8.0.1, version de révision 8.0.1.1.30 ou ultérieure

  • PolarDB for MySQL 8.0.2, version de révision 8.0.2.2.12 ou ultérieure

Pour vérifier la version de votre cluster, consultez Interroger la version du moteur.

Limites

SQL Trace ne suit pas les instructions liées aux comptes : CREATE USER, DROP USER et GRANT.

Paramètres

Paramètre Description
loose_sql_trace_type Mode de suivi. Valeurs valides : OFF (par défaut), DEMAND, ALL, SLOW_QUERY. Le mode SLOW_QUERY nécessite la version de révision 8.0.1.1.34 ou ultérieure sur PolarDB for MySQL 8.0.1.
loose_sql_sharing_size Mémoire maximale allouée à SQL Sharing, composant sous-jacent de SQL Trace. Valeurs valides : 8388608–1073741824 octets. Valeur par défaut : 134217728 octets.
loose_sql_trace_plan_expire_time Durée de conservation d'un plan d'exécution suivi lorsqu'il n'est pas réutilisé. Si aucune instruction ultérieure n'exécute ce même plan dans cet intervalle, celui-ci est supprimé. Valeurs valides : 0–18446744073709551615 secondes. Valeur par défaut : 604800 secondes (7 jours).

Choisir un mode de suivi

Sélectionnez un mode selon vos besoins de surveillance :

Mode Éléments suivis Cas d'utilisation
OFF Aucun (par défaut) SQL Trace est inactif
DEMAND Instructions SQL spécifiques ajoutées manuellement Cibler des requêtes lentes ou critiques identifiées
ALL Toutes les instructions SQL Investiguer des problèmes de performance inconnus sur l'ensemble du cluster
SLOW_QUERY Requêtes dépassant le seuil de requête lente Se concentrer uniquement sur les requêtes lentes
D'après les tests Sysbench ( oltp_read_only et oltp_read_write ) réalisés avec 2 000 tables de 10 000 lignes chacune, sur des clusters de 4 cœurs/8 Go et 8 cœurs/32 Go, le mode ALL dégrade les performances de la base de données de moins de 3 %. SQL Trace utilise des mécanismes sans verrouillage afin de minimiser l'impact en cas de forte concurrence.

Suivre des instructions SQL

Suivre toutes les instructions SQL

Définissez loose_sql_trace_type sur ALL.

Suivre des instructions SQL spécifiques

  1. Définissez loose_sql_trace_type sur DEMAND.

  2. Ajoutez les instructions à suivre à l'aide de dbms_sql.add_trace.

Interroger les statistiques d'exécution

Toutes les instructions suivies sont stockées dans la table information_schema.sql_sharing. Interrogez cette table pour consulter le plan d'exécution et les statistiques de toute instruction suivie.

Obtenir le plan d'exécution d'une instruction spécifique

SELECT * FROM information_schema.sql_sharing WHERE sql_id = polar_sql_id('select * from t');

Identifier les principales instructions SQL

Utilisez ces requêtes pour identifier les instructions nécessitant une attention particulière. Commencez par le temps d'exécution total afin de repérer le coût global le plus élevé, puis exploitez les autres requêtes pour isoler les causes racines.

Top 10 par temps d'exécution total — identifie les instructions présentant le coût cumulé le plus élevé sur l'ensemble des exécutions :

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_EXEC_TIME DESC
LIMIT 10;

Top 10 par temps d'exécution moyen — met en évidence les instructions lentes par appel, même si elles sont peu fréquentes :

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_EXEC_TIME / EXECUTIONS DESC
LIMIT 10;

Top 10 par nombre total de lignes analysées — révèle les instructions générant le plus d'E/S, ce qui indique souvent des index manquants ou des plans de requête inefficaces :

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_ROWS_EXAMINED DESC
LIMIT 10;

Gérer les instructions suivies et les statistiques

Supprimer des instructions suivies

Pour arrêter le suivi d'instructions spécifiques ajoutées en mode DEMAND :

Réinitialiser les statistiques

Pour réinitialiser toutes les statistiques dans information_schema.sql_sharing, utilisez dbms_sql.reset_trace_stats.

Effacer et recharger

Pour effacer toutes les données de information_schema.sql_sharing, utilisez dbms_sql.flush_trace.

Pour recharger les modèles SQL depuis mysql.sql_sharing et reprendre la collecte des statistiques pour les instructions précédemment ajoutées, utilisez dbms_sql.reload_trace.