Přeskočit na obsah
100% lokálně

Formátor SQL EXPLAIN plánů

Převeď výstup EXPLAIN nebo EXPLAIN ANALYZE na čitelný strom operací se zvýrazněnými pomalými částmi.

Vstup
Výstup

Formátor SQL EXPLAIN plánů

Vložte výstup EXPLAIN nebo EXPLAIN ANALYZE a tento nástroj změní blok textu na odsazený strom operací, přičemž každý uzel má vedle sebe uvedené náklady, počty řádků a časy. Místo skenování hustého bloku "cost=… rows=… actual time=…" anotací vidíte strukturu, kterou můžete najednou pochopit — který scan napájí které spojení a kde dotaz skutečně tráví svůj čas.

Vyberte dialekt, který odpovídá vaší databázi: PostgreSQL a MySQL 8 EXPLAIN ANALYZE používají stejný odsazený strom "-> ", klasická (bez ANALYZE) EXPLAIN tabulka MySQL se zpracovávají řádek po řádku a SQLite EXPLAIN QUERY PLAN má svůj vlastní ASCII-strom a formáty id/parent. Vložte jako prostý text nebo přepněte formát vstupu na JSON pro PostgreSQL EXPLAIN (FORMAT JSON) a MySQL EXPLAIN FORMAT=JSON. Přepínač "Zobrazit počty řádků" skrývá odhadované a skutočné počty řádků, práh nákladného uzlu kontroluje, jaké procento z celkových nákladů nebo času získává uzel vlajku "nákladný", a skrytí uzlů pod vám umožňuje oříznout nízkonákladové větve z dlouhého plánu, aby vynikly odlehlé. Přepínajte výstup mezi odsazeným stromem a jednoduchou zarovnanou tabulkou.

Náklady a časy, které hlásí každý uzel, jsou kumulativní — již zahrnují každý podřízený prvek — takže nástroj odečítá podřízené uzly každého uzlu před jejich hodnocením, což zabraňuje tomu, aby uzel nejvyšší úrovně vždy vypadal jako "nákladný". Shrnutí pod plánem sečte operace, počítá, kolik bylo označeno, a pojmenovává nejpomalejší větev od kořene k listu, takže přesně víte, který řetězec operací je třeba nejdříve prozkoumat.

Všechno se spouští lokálně ve vašem prohlížeči — plán výkonu může odhalit názvy tabulek a indexů, které byste raději nevkládali do náhodného webového formuláře, a žádné z toho se nikam neodesílá. Zkopírujte formátovaný strom, stáhněte si jej jako soubor .txt nebo odešlete výstup zpět na vstup, abyste upravili práh a přeformátovali.

Časté dotazy

Které formáty EXPLAIN rozumí?
Výstup stromu EXPLAIN ANALYZE PostgreSQL a MySQL 8, klasické tabulkové EXPLAIN MySQL, EXPLAIN QUERY PLAN SQLite (jak jeho ASCII-strom, tak surové řádky id/parent/detail), plus formáty JSON plánu PostgreSQL a MySQL.
Proč není uzel nejvyšší úrovně vždy označen jako nákladný?
Náklady a čas, které hlásí uzel, již zahrnují vše pod ním, takže nástroj porovnáva vlastní podíl každého uzlu po odečtení jeho podřízených uzlů — to je to, co místo zdůraznění kořene poukazuje na skutočné úzké místo.
Co se stane, pokud plán SQLite nemá údaje o nákladech?
SQLite EXPLAIN QUERY PLAN nehlásí náklady ani časy, takže se strom stále formátuje a shrnutí to hlásí čestně namísto hádání zvýraznění.
Smaže "Skrýt uzly pod" něco z mého plánu?
Ne — pouze vynecházíme řádky s nízkým podílem z tohoto pohledu. Operace kořene vždy zůstává viditelná, takže strom si zachovává svůj kotevní bod; spusťte znovu s nižším prahem, abyste znova viděli vše.
Je můj plán výkonu poslán někam?
Ne. Parsování a formátování probíhá úplně ve vašem prohlížeči — plán a všechny názvy tabulek a indexů v něm nikdy neopouští vaše zařízení.