Zum Inhalt springen
100% lokal

SQL EXPLAIN-Planformatierer

Verwandeln Sie den rohen EXPLAIN- oder EXPLAIN ANALYZE-Plan in einen lesbaren, eingerückten Baum mit markierten langsamen Teilen.

Eingabe
Ausgabe

SQL EXPLAIN-Planformatierer

Fügen Sie die unformatierte Ausgabe von EXPLAIN oder EXPLAIN ANALYZE ein und dieses Tool verwandelt die Textwand in einen eingerückten Baum von Operationen, wobei die Kosten, Zeilenanzahl und Timing jedes Knotens nebeneinander aufgelistet sind. Anstatt einen dichten Block von "cost=… rows=… actual time=…"-Anmerkungen zu durchsuchen, erhalten Sie eine Form, die Sie auf einen Blick lesen können – welche Scan welcher Join speist und wo die Abfrage tatsächlich ihre Zeit verbringt.

Wählen Sie den Dialekt, der zu Ihrer Datenbank passt: PostgreSQL und MySQL 8's EXPLAIN ANALYZE verwenden beide den gleichen eingerückten "-> " Baum, MySQL's klassisches (non-ANALYZE) EXPLAIN wird zeilenweise geparst, und SQLite's EXPLAIN QUERY PLAN bekommt sein eigenes ASCII-Format und id/parent. Fügen Sie reinen Text ein oder wechseln Sie das Eingabeformat zu JSON für PostgreSQL's EXPLAIN (FORMAT JSON) und MySQL's EXPLAIN FORMAT=JSON. Mit "Zeilenanzahl anzeigen" wechseln Sie zwischen geschätzten und tatsächlichen Zeilenzahlen, der Schwellwert für teure Operationen steuert, welcher Prozentsatz der Gesamtkosten oder Zeit einen Knotenpunkt als "teuer" kennzeichnet, und "Knotenpunkte unter" lässt Sie kostengünstige Äste einer langen Plan prunen, damit die Ausreißer hervorstechen. Wechseln Sie die Ausgabe zwischen einem eingerückten Baum und einer ebenen ausgerichteten Tabelle.

Die Kosten und Zeit, die jeder Knotenpunkt meldet, sind kumulativ – sie enthalten bereits alle Kinder darunter – daher zieht das Tool die Kinder jedes Knotenpunkts vor dem Ranking ab, was verhindert, dass der oberste Knotenpunkt einer Abfrage immer wie der "teure" aussieht. Die Zusammenfassungszeile unter dem Plan zählt die Operationen, wie viele gekennzeichnet wurden, und benennt den langsamsten Ast von Wurzel zu Blatt, damit Sie genau wissen, welche Operationskette Sie zuerst untersuchen sollten.

Alles läuft lokal in Ihrem Browser – ein Abfragplan kann Tabellen- und Indexnamen enthüllen, die Sie lieber nicht in ein beliebiges Webformular eingeben möchten, und nichts davon wird irgendwo hochgeladen. Kopieren Sie den formatierten Baum, laden Sie ihn als .txt-Datei herunter oder sendet die Ausgabe zurück zur Eingabe, um den Schwellwert anzupassen und neu zu formatieren.

Häufige Fragen

Welche EXPLAIN-Formate versteht es?
PostgreSQL und MySQL 8's EXPLAIN ANALYZE-Baumausgabe, MySQL's klassisches tabellarisches EXPLAIN, SQLite's EXPLAIN QUERY PLAN (sowohl sein ASCII-Baum als auch rohe id/parent/detail-Zeilen), plus PostgreSQL's und MySQL's JSON-Planformate.
Warum ist der oberste Knotenpunkt nicht immer als teuer gekennzeichnet?
Die von einem Knotenpunkt gemeldeten Kosten und Zeit enthalten bereits alles darunter. Das Tool vergleicht also den eigenen Anteil jedes Knotenpunkts nach Subtraktion seiner Kinder – das ist es, was auf den tatsächlichen Engpass anstatt immer auf die Wurzel hinweist.
Was passiert, wenn SQLite's Plan keine Kostendaten hat?
SQLite's EXPLAIN QUERY PLAN meldet keine Kosten oder Timing, daher formatiert sich der Baum immer noch und die Zusammenfassung sagt das ehrlich, anstatt zu raten.
Löscht "Knotenpunkte unter" alles aus meinem Plan?
Nein – es lässt nur Zeilen mit niedriger Quote aus dieser Ansicht weg. Der Wurzelknoten bleibt immer sichtbar, damit der Baum seinen Anker behält. Führen Sie mit einem niedrigeren Schwellwert erneut aus, um alles zu sehen.
Wird mein Abfragplan irgendwo hochgeladen?
Nein. Parsing und Formatierung erfolgen vollständig in Ihrem Browser – der Plan und alle Tabellen- oder Indexnamen darin verlassen Ihr Gerät nie.