# SQL Ausführungsplan-Visualisierer

Füge EXPLAIN-/EXPLAIN-ANALYZE-Ausgaben (PostgreSQL/MySQL/SQLite) ein, um einen Kostenbaum zu erhalten, Abweichungen zwischen geschätzten und tatsächlichen Zeilen zu markieren und Indexvorschläge zu erhalten

> Kanonische Seite: https://elysiatools.com/de/tools/sql-explain-plan-visualizer

- **Kategorie:** Development

- **Schlagwörter:** explain, sql, plan, index, datenbank

## Überblick

Dieses Tool parst die tatsächliche EXPLAIN-Ausgabe — nicht den statischen Abfragetext — und stellt den Ausführungsplan als eingerückten, nach Schweregrad eingefärbten Baum dar.

Unterstützte Eingaben (automatisch oder wählbar):
- PostgreSQL: JSON aus `EXPLAIN (FORMAT JSON, ANALYZE)` oder die Standard-TEXT-Ausgabe mit Einrückung.
- MySQL: Ausgabe von `EXPLAIN FORMAT=JSON` oder das klassische tabellarische EXPLAIN (id|select_type|table|type|key|rows|Extra).
- SQLite: Text von `EXPLAIN QUERY PLAN` (SCAN/SEARCH ... USING INDEX ...).

Pro Knoten: Knotentyp, Relation, genutzter Index, geschätzte Kosten/Zeit, geschätzte Zeilen und — bei EXPLAIN ANALYZE — tatsächliche Zeilen und Zeit. Abweichungen ≥10× zwischen geschätzten und tatsächlichen Zeilen werden als Statistik-Hotspots markiert.

Diagnosen: Sequential/Full-Table-Scans auf großen Tabellen, Statistik-Divergenz (veralteter ANALYZE), Filesorts, temporäre Tabellen, teure Nested Loops, nicht-sargable Prädikate (Funktionen auf indizierten Spalten), SELECT *, ORDER BY ohne LIMIT — jeweils mit konkretem Index-/Rewrite-Vorschlag (z. B. „Index auf users(email) anlegen").

Tipp: Für die aussagekräftigste Ausgabe unter PostgreSQL `EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)` bzw. unter MySQL `EXPLAIN ANALYZE` ausführen, um Schätzung und Wirklichkeit zu vergleichen.

## Eingaben

- **EXPLAIN-Ausgabe** (textarea): Paste EXPLAIN JSON or TEXT here. e.g. PostgreSQL: \[ { "Plan": { "Node Type": "Seq Scan", "Relation Name": "users", "Actual Rows": 95000, "Plan Rows": 1000 } } \] Or indented text: Seq Scan on users (cost=0.00..1541.00 rows=1000 width=4)
- **Dialekt** (select)
- **SQL-Abfrage (optional)** (textarea): SELECT * FROM users WHERE lower(email) = 'a@b.com' ORDER BY created_at
- **Tiefenlimit** (number)

## 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.

## Funktionsweise

- 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

- Optimierung langsamer Berichte durch das Aufspüren von Sequential Scans auf großen Tabellen.
- Behebung von Performance-Problemen nach Datenimporten durch Identifikation veralteter Statistiken.
- Analyse von verschachtelten Schleifen (Nested Loops) und temporären Tabellen bei komplexen JOIN-Abfragen.

## Häufig gestellte Fragen

### 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.

## Ähnliche Tools

- [Spielstand-Betrachter](https://elysiatools.com/de/tools/game-save-viewer): Beliebigen Spielstand einwerfen — Minecraft-NBT, Unreal-Engine-GVAS, Palworld-Container, JSON/XML/INI/Lua-Textsaves, SQLite-Profile — und erkanntes Format, Engine-Versionen, wichtige Fortschrittsfelder und einen begrenzten Strukturbaum erhalten.
- [CSV-zu-Datenbank-Migrationsplaner](https://elysiatools.com/de/tools/csv-to-database-migration-planner): Leitet aus CSV-Daten ein relationales Schema ab und erzeugt CREATE-TABLE- und ALTER-Plaene fuer PostgreSQL, MySQL, SQLite oder SQL Server
- [Analysator fuer strukturierte Logs](https://elysiatools.com/de/tools/structured-log-analyzer): Erkennt gaengige Logformate, extrahiert Kernfelder und exportiert als JSON, CSV oder SQL.
- [package.json Abhängigkeits-Prüfer](https://elysiatools.com/de/tools/package-json-dependency-auditor): Prüft ein package.json auf Abhängigkeitshygiene und Qualität von Versionsbereichen und kann optional den transitiven Baum aus package-lock.json oder yarn.lock untersuchen. Markiert Duplikate, Wildcards oder Pre-Releases, unsortierte Schlüssel, fehlende Metadaten und falsch klassifizierte Laufzeit-/Dev-Abhängigkeiten.
- [Zeitreihen-Prognose- und Saisonalitaetsanalyse](https://elysiatools.com/de/tools/time-series-forecast-seasonality-analyzer): Prognostiziert kuenftige Perioden aus CSV- oder JSON-Zeitreihen und zeigt Trend, Saison und Residuen in einem Bericht
- [GraphQL Playground](https://elysiatools.com/de/tools/graphql-playground): GraphQL-Client im Browser: Schreiben Sie Queries und Variablen, senden Sie sie an einen beliebigen GraphQL-Endpoint und inspizieren Sie formatierte JSON-Ergebnisse oder Fehler-Arrays — ideal für die Schema-Iteration während der Entwicklung
- [Mock-Data-Praefix- und Abkuerzungs-Konfliktdetektor](https://elysiatools.com/de/tools/mock-data-naming-conflict-detector): Erkennt visuell verwirrende Feldnamen und Praefixkollisionen in CSV, JSON oder Schemas
- [Text-Pipeline-Builder](https://elysiatools.com/de/tools/text-pipeline-builder): Führt eine portable Textbereinigungsrezeptur aus und zeigt jeden Diff, Zeitaufwand und Zeichenänderungen.

## Beispiele

- [SQL-Skript-Beispiele](https://elysiatools.com/de/samples/sql-samples): SQL-Abfragebeispiele und Datenbankskripte für verschiedene Szenarien und Anwendungsfälle
- [SQL-Injection-Beispiele](https://elysiatools.com/de/samples/sql-injections): Bildungssammlung von SQL-Injection-Payloads für Sicherheitstests, Schwachstellenbewertung und defensive Coding-Praktiken
- [SQL-Beispiele](https://elysiatools.com/de/samples/sql-viewer-samples): Beispieldateien fuer den Browser-basierten SQL-Viewer
- [Erweiterte PostgreSQL Beispiele](https://elysiatools.com/de/samples/postgresql-advanced): Erweiterte PostgreSQL Datenbankbeispiele einschließlich Optimierungsstrategien, komplexe Abfragen, Indizierung und Performance-Tuning

## Verwandte Inhalte

- [SQL-Abfragepruefung fuer Performance und Integritaet](https://elysiatools.com/de/hubs/sql-query-review-performance-and-integrity): Erstelle, formatiere und pruefe SQL-Abfragen mit Join-, Performance-, Explain-Plan-, Injection-, Fremdschluessel- und Schema-Evidenz.
