Preskočiť na obsah
100% lokálne

Formátor SQL EXPLAIN plánov

Vyparsuj výstup EXPLAIN alebo EXPLAIN ANALYZE do čitateľného stromu operácií so zvýraznenými pomalými časťami.

Vstup
Výstup

Formátor SQL EXPLAIN plánov

Vložte výstup EXPLAIN alebo EXPLAIN ANALYZE a tento nástroj změní blok textu na odsadený strom operácií, pričom každý uzol má vedľa seba uvedené náklady, počty riadkov a časy. Namiesto skenovania hustého bloku "cost=… rows=… actual time=…" anotácií vidíte štruktúru, ktorú môžete naraz pochopiť — ktorý sken napája ktoré spojenie a kde dotaz naozaj trávi svoj čas.

Vyberte dialekt, ktorý zodpovedá vašej databáze: PostgreSQL a MySQL 8 EXPLAIN ANALYZE používajú rovnaký odsadený strom "-> ", klasický (bez ANALYZE) EXPLAIN tabuľky MySQL sa spracovávajú riadok po riadku a SQLite EXPLAIN QUERY PLAN má svoj vlastný ASCII-strom a formáty id/parent. Vložte ako obyčajný text alebo prepnite formát vstupu na JSON pre PostgreSQL EXPLAIN (FORMAT JSON) a MySQL EXPLAIN FORMAT=JSON. Prepínač "Zobraziť počty riadkov" skrýva odhadované a skutočné počty riadkov, prah nákladného uzla kontroluje, aké percento z celkových nákladov alebo času získava uzol vlajku "drahý", a skrytie uzlov pod vám umožní orezať nízkonákladové vetvy z dlhého plánu, aby vynikli výkyvniki. Prepínajte výstup medzi odsadeným stromom a jednoduchou zarovnanou tabuľkou.

Náklady a časy, ktoré hlási každý uzol, sú kumulatívne — už zahŕňajú každý podradený prvok — takže nástroj odčíta dcérske uzly každého uzla pred jej hodnotením čohokoľvek, čo zabraňuje tomu, aby uzol najvyššej úrovne vždy vyzeral ako "drahý". Zhrnutie pod plánom spočítava operácie, počíta, koľko bolo označených, a pomenúva najpomalšiu vetvu od koreňa do listu, takže presne viete, ktorý reťazec operácií treba najprv preskúmať.

Všetko sa spúšťa lokálne vo vašom prehliadači — plán výkonu môže odhaliť názvy tabuliek a indexov, ktoré by ste radšej nevkladali do náhodného webového formulára, a žiadne z toho sa neodosielaní nikam. Skopírujte formátovaný strom, stiahnite si ho ako súbor .txt alebo odošlite výstup späť na vstup, aby ste upravili prah a preformátovali.

Časté otázky

Ktoré formáty EXPLAIN chápe?
Výstup stromu EXPLAIN ANALYZE PostgreSQL a MySQL 8, klasické tabuľové EXPLAIN MySQL, EXPLAIN QUERY PLAN SQLite (aj jeho ASCII-strom aj surové riadky id/parent/detail), plus formáty JSON plánu PostgreSQL a MySQL.
Prečo nie je uzol najvyššej úrovne vždy označený ako drahý?
Náklady a čas, ktoré hlási uzol, už zahŕňajú všetko pod ním, takže nástroj porovnáva vlastný podiel každého uzla po odčítaní jeho dcérskych uzlov — to je to, čo namiesto zdôraznenia koreňa ukazuje na skutočné úzke miesto.
Čo sa stane, ak plán SQLite nemá údaje o nákladoch?
SQLite EXPLAIN QUERY PLAN nehlási náklady ani časy, takže sa strom stále formátuje a zhrnutie to oznamuje čestne namiesto hádania zvýraznenia.
Vymaže "Skryť uzly pod" niečo z môjho plánu?
Nie — iba vynecháva riadky s nízkou hodnotou z tohto pohľadu. Operácia koreňa vždy zostáva viditeľná, takže strom si zachováva svoj kotevný bod; spustite znovu s nižším prahom, aby ste znova videli všetko.
Je môj plán výkonu odoslaný niekam?
Nie. Analýza a formátovanie sa vykonávajú úplne vo vašom prehliadači — plán a všetky názvy tabuliek a indexov v ňom nikdy neopúšťajú vaše zariadenie.