Hoppa till innehåll
100% lokalt

SQL EXPLAIN-planformaterare

Omvandla en inklistrad EXPLAIN- eller EXPLAIN ANALYZE-plan till ett läsbart, indenterat träd med långsamma delar markerade.

Inmatning
Utmatning

SQL EXPLAIN-planformaterare

Klistra in rå EXPLAIN- eller EXPLAIN ANALYZE-utdata och detta verktyg förvandlar textväggen till ett indenterat träd av operationer, med varje nods kostnader, radantal och timing listade bredvid. Istället för att söka genom ett tätt block av "cost=… rows=… actual time=…"-anteckningar får du en form du kan läsa på en gång – vilken skanning matar vilken join och var frågan faktiskt spenderar sin tid.

Välj dialekten som matchar din databas: PostgreSQL och MySQL 8's EXPLAIN ANALYZE använder båda samma indenterade "-> " träd, MySQL's klassiska (icke-ANALYZE) EXPLAIN tolkas rad för rad, och SQLite's EXPLAIN QUERY PLAN får sitt eget ASCII-träd och id/parent-format. Klistra in oformaterad text eller byt indataformat till JSON för PostgreSQL's EXPLAIN (FORMAT JSON) och MySQL's EXPLAIN FORMAT=JSON. Visa radantal växlar mellan uppskattade och faktiska radnummer, tröskelvärdena för dyra noder styr vilken procentandel av totala kostnader eller tid som ger en nod "dyr"-flaggan, och dölj noder under låter dig rensa låga kostnader från en långplan så avvikarna sticker ut. Byt utdata mellan ett indenterat träd och en vanlig justerad tabell.

De kostnader och tider varje nod rapporterar är kumulativa – de inkluderar redan allt under dem – så verktyget subtraherar varje nods barn innan det rankar något, vilket hindrar att en frågans topnod alltid ser "dyr" ut. Sammanfattningsraden under planen räknar operationerna, hur många som flaggades, och namnger den långsammaste grenen från rot till blad så du vet exakt vilken operationskedja du ska undersöka först.

Allt körs lokalt i din webbläsare – en frågplan kan avslöja tabell- och indexnamn du hellre inte klistrar in i ett slumpmässigt webbformulär, och ingenting av det laddas upp någonstans. Kopiera det formaterade trädet, ladda ned som .txt-fil eller skicka utdata tillbaka till indata för att justera tröskeln och formatera om.

FAQ

Vilka EXPLAIN-format förstår det?
PostgreSQL och MySQL 8's EXPLAIN ANALYZE trädutdata, MySQL's klassiska tabellariska EXPLAIN, SQLite's EXPLAIN QUERY PLAN (både dess ASCII-träd och rå id/parent/detail-rader), plus PostgreSQL's och MySQL's JSON-planformat.
Varför är den översta noden inte alltid markerad som dyr?
De kostnader och tider som en nod rapporterar inkluderar redan allt under den, så verktyget jämför varje nods egen andel efter att barnens kostnader subtraheras – det pekar på den faktiska flaskhalsen istället för att alltid markera roten.
Vad händer om SQLite's plan saknar kostnadsdata?
SQLite's EXPLAIN QUERY PLAN rapporterar ingen kostnad eller tid, så trädet formateras fortfarande och sammanfattningen säger det ärligt istället för att gissa.
Raderar "dölj noder under" något från min plan?
Nej – det utesluter bara låg-andelsrader från denna vy. Rotnoden förblir alltid synlig så trädet behåller sitt ankare; kör igen med en lägre tröskel för att se allt.
Laddas min frågplan upp någonstans?
Nej. Tolkning och formatering sker helt i din webbläsare – planen och alla tabell- eller indexnamn i den lämnar aldrig din enhet.