Aller au contenu
Tout en local

Formateur de plans EXPLAIN SQL

Transformez la sortie EXPLAIN ou EXPLAIN ANALYZE en un arborescence lisible et indentée avec les parties lentes signalées.

Entrée
Sortie

Formateur de plans EXPLAIN SQL

Collez la sortie de EXPLAIN ou EXPLAIN ANALYZE et cet outil transforme le bloc de texte en une arborescence indentée d'opérations, avec le coût, les nombres de lignes et le temps de chaque nœud alignés. Au lieu de scanner un bloc dense d'annotations « cost=… rows=… actual time=… », vous obtenez une forme que vous pouvez lire en un coup d'œil — quel scan alimente quelle jointure et où la requête passe son temps.

Choisissez le dialecte de votre base de données : EXPLAIN ANALYZE de PostgreSQL et MySQL utilisent le même arborescence indentée « -> », le EXPLAIN classique de MySQL (non-ANALYZE) est analysé ligne par ligne, et EXPLAIN QUERY PLAN de SQLite a ses propres formats ASCII et id/parent. Collez du texte brut ou basculez le format d'entrée en JSON pour EXPLAIN (FORMAT JSON) de PostgreSQL et EXPLAIN FORMAT=JSON de MySQL. Afficher les comptages de lignes bascule les chiffres estimés par rapport aux réels, le seuil de nœud coûteux contrôle le pourcentage du coût qui obtient le drapeau « coûteux », et masquer les nœuds vous permet d'élaguer les branches à faible coût pour que les valeurs aberrantes se démarquent. Basculez la sortie entre une arborescence indentée et un tableau plat.

Le coût et le temps que rapporte chaque nœud sont cumulatifs — ils incluent déjà tous les descendants — donc l'outil soustrait les descendants avant de classer quoi que ce soit, ce qui empêche le nœud de niveau supérieur d'une requête de toujours paraître comme le « coûteux ». La ligne de résumé totalise les opérations, compte combien ont été signalées, et nomme la branche la plus lente de la racine à la feuille pour que vous sachiez exactement quelle chaîne d'opérations investiguer en premier.

Tout s'exécute localement dans votre navigateur — un plan de requête peut révéler des noms de table et d'index que vous préféreriez ne pas coller dans un formulaire web aléatoire, et rien n'est téléchargé nulle part. Copiez l'arborescence formatée, téléchargez-la en tant que fichier .txt, ou renvoyez la sortie à l'entrée pour ajuster le seuil et reformater.

FAQ

Quels formats EXPLAIN comprend-il?
Sortie d'arborescence EXPLAIN ANALYZE de PostgreSQL et MySQL 8, EXPLAIN tabulaire classique de MySQL, EXPLAIN QUERY PLAN de SQLite (à la fois son arborescence ASCII et ses lignes id/parent/détail brutes), plus les formats de plans JSON de PostgreSQL et MySQL.
Pourquoi le nœud de niveau supérieur n'est-il pas toujours marqué comme coûteux?
Le coût et le temps signalés par un nœud incluent déjà tout ce qui se trouve en dessous, donc l'outil compare la part propre de chaque nœud après soustraction de ses descendants — c'est ce qui pointe sur le vrai goulot d'étranglement au lieu de toujours mettre en évidence la racine.
Que se passe-t-il si le plan de SQLite n'a pas de données de coût?
EXPLAIN QUERY PLAN de SQLite ne rapporte pas les coûts ou les délais, donc l'arborescence se formate toujours et le résumé le dit honnêtement au lieu de deviner un surligneur.
"Masquer les nœuds en dessous de" supprime-t-il quelque chose de mon plan?
Non — il masque simplement les lignes à faible part de cette vue. L'opération racine reste toujours visible pour que l'arborescence conserve son ancre; réexécutez avec un seuil inférieur pour voir tout à nouveau.
Mon plan de requête est-il téléchargé quelque part?
Non. L'analyse et le formatage se font entièrement dans votre navigateur — le plan, et tous les noms de table ou d'index qu'il contient, ne quittent jamais votre appareil.