Wichtige Fakten
- Kategorie
- Entwicklung & Web
- Eingabetypen
- textarea, select, number
- Ausgabetyp
- html
- Sample-Abdeckung
- 4
- API verfügbar
- Yes
Überblick
Der SQL Ausführungsplan-Visualisierer parst die EXPLAIN- und EXPLAIN-ANALYZE-Ausgaben von PostgreSQL, MySQL und SQLite, um komplexe Ausführungspläne in einem übersichtlichen, farbcodierten Kostenbaum darzustellen und Optimierungspotenziale wie fehlende Indizes direkt aufzuzeigen.
Wann verwenden
- •Wenn eine SQL-Abfrage unerwartet langsam ausgeführt wird und die genaue Ursache im Ausführungsplan analysiert werden soll.
- •Zur Erkennung von Abweichungen zwischen geschätzten und tatsächlichen Zeilenzahlen nach einem EXPLAIN ANALYZE.
- •Um langsame Full-Table-Scans, teure Filesorts oder ungeeignete Join-Operationen in PostgreSQL, MySQL oder SQLite schnell zu identifizieren.
So funktioniert es
- •Kopieren Sie die EXPLAIN- oder EXPLAIN-ANALYZE-Ausgabe als Text oder JSON aus Ihrer Datenbank und fügen Sie sie in das Eingabefeld ein.
- •Wählen Sie den passenden SQL-Dialekt aus oder lassen Sie das Tool das Format automatisch erkennen.
- •Das Tool analysiert die Struktur und visualisiert den Ausführungsplan als hierarchischen, nach Kosten gewichteten Baum.
- •Kritische Engpässe wie hohe Abweichungen bei den Zeilenschätzungen oder fehlende Indizes werden farblich hervorgehoben und mit konkreten Optimierungsvorschlägen versehen.
Anwendungsfälle
Beispiele
1. PostgreSQL Seq Scan Behebung
Backend-Entwickler- Hintergrund
- Eine Abfrage auf der Tabelle 'users' dauert mehrere Sekunden, obwohl nur nach einer bestimmten E-Mail-Adresse gefiltert wird.
- Problem
- Die Abfrage führt einen langsamen Sequential Scan durch, da kein passender Index existiert.
- Verwendung
- Fügen Sie die JSON-Ausgabe von EXPLAIN (ANALYZE, FORMAT JSON) in das Tool ein und wählen Sie PostgreSQL als Dialekt.
- Beispielkonfiguration
-
{ "explainOutput": "[{\"Plan\": {\"Node Type\": \"Seq Scan\", \"Relation Name\": \"users\", \"Filter\": \"((email)::text = '[email protected]')\", \"Plan Rows\": 1000, \"Actual Rows\": 95000}} ]", "dialect": "postgresql" } - Ergebnis
- Das Tool visualisiert den Seq Scan rot, markiert die Abweichung der Zeilenschätzung und empfiehlt das Anlegen eines Index auf users(email).
2. MySQL Filesort Optimierung
Datenbank-Administrator- Hintergrund
- Eine Sortierabfrage mit ORDER BY führt zu hoher CPU-Last auf dem MySQL-Server.
- Problem
- Die EXPLAIN-Ausgabe zeigt die Nutzung von 'Using filesort' und einer temporären Tabelle.
- Verwendung
- Fügen Sie die tabellarische EXPLAIN-Ausgabe der MySQL-Abfrage ein.
- Beispielkonfiguration
-
{ "explainOutput": "id|select_type|table|type|key|rows|Extra\n1|SIMPLE|orders|ALL|NULL|50000|Using filesort", "dialect": "mysql" } - Ergebnis
- Das Tool hebt den Filesort hervor und schlägt einen passenden Index vor, um die Sortierung direkt über die Speicherstruktur abzuwickeln.
Mit Samples testen
json, sql, textVerwandte Hubs
FAQ
Welche SQL-Datenbanken werden unterstützt?
Das Tool unterstützt EXPLAIN-Ausgaben von PostgreSQL (Text und JSON), MySQL (Text und JSON) sowie SQLite.
Was bedeutet eine hohe Abweichung bei den Zeilenzahlen?
Wenn die geschätzten Zeilen stark von den tatsächlichen abweichen (Faktor 10 oder mehr), sind oft die Tabellenstatistiken veraltet, was zu suboptimalen Abfrageplänen führt.
Muss ich die SQL-Abfrage zwingend eingeben?
Nein, die Angabe der SQL-Abfrage ist optional. Das Tool benötigt primär die EXPLAIN-Text- oder JSON-Ausgabe zur Visualisierung.
Wie erhalte ich die detaillierteste Analyse für PostgreSQL?
Führen Sie die Abfrage mit dem Befehl 'EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)' aus, um präzise Laufzeit- und Puffer-Statistiken zu erhalten.
Zeigt das Tool konkrete Indexvorschläge an?
Ja, bei erkannten Sequential Scans oder unvollständigen Suchpfaden schlägt das Tool spezifische Indizes für die betroffenen Spalten vor.