Preskoči na vsebino
100% lokalno

SQL EXPLAIN oblikovalnik načrtov

Spremenite prilepljeni EXPLAIN ali EXPLAIN ANALYZE načrt v berljivo zamaknjeno drevo s označenimi počasnimi deli.

Vhod
Izhod

SQL EXPLAIN oblikovalnik načrtov

Prilepite surovi izhod EXPLAIN ali EXPLAIN ANALYZE in to orodje besedilo spremeni v zamaknjeno drevo operacij z vsakim vozliščem, stroški, število vrstic in časi poravnani zraven. Namesto branja gostega bloka »cost=… rows=… actual time=…« pripisov dobite obliko, ki ga lahko preberate na prvi pogled — kateri scan napaja kateri join in kje se poizvedka dejansko porabi čas.

Izberi narečje, ki se ujema z vašo bazo: PostgreSQL in MySQL EXPLAIN ANALYZE uporabljata enako zamaknjeno »-> « drevo, klasični MySQL (brez ANALYZE) EXPLAIN se parsira vrstico za vrstico, SQLite EXPLAIN QUERY PLAN pa ima svoje ASCII-drevo in oblike id/parent. Prilepite navadno besedilo ali preklapljajte obliko vnosa na JSON za PostgreSQL EXPLAIN (FORMAT JSON) in MySQL EXPLAIN FORMAT=JSON izhod. Prikazi števila vrstic vključuje ocenjeno v primerjavi z dejanskimi številkami, prag dragih vozlišč nadzira, kateri odstotek celotnega stroška ali časa zasluži oznako »drago«, in skrij vozlišča pod omogoča preuređevanje nizko-stroškovnih vej iz dolgega načrta, da izstopajo izjemni primeri. Preklapljajte med zamaknjenim drevesom in navadno poravnano tabelo.

Stroški in čas, ki jih vsako vozlišče prijavi, sta kumulativna — že vključujeta vsako podrejeno vozlišče pod njim — zato orodje odšteje podredjena vozlišča vsakega vozlišča pred razvrščanjem česar koli, kar onemogoči, da bi vrhnje vozlišče poizvedke vedno izgledalo »drago«. Povzetna vrstica pod načrtom sešteje operacije, šteje, koliko je označeno, in poimenuje najsporejo vejo od koren do lista, da točno veste, katero verigo operacij preiskati najprej.

Vse se izvršava lokalno v vašem brskalniku — poizvedbeni načrt lahko razkrije imena tabel in indeksov, ki jih raje ne bi prilepili v naključen spletni obrazec, in nič ni naloženo nikjer. Kopirajte oblikovano drevo, ga prenesite kot datoteko .txt ali pošljite rezultat nazaj v vnos za prilagoditev praga in preoblikovanje.

FAQ

Katere oblike EXPLAIN razume?
PostgreSQL in MySQL 8 EXPLAIN ANALYZE drevo izhoda, klasični MySQL tablični EXPLAIN, SQLite EXPLAIN QUERY PLAN (tako njegovo ASCII-drevo kot surov id/parent/detail vrstic), plus PostgreSQL in MySQL JSON oblike načrta.
Zakaj vrhnje vozlišče nikoli ni označeno kot drago?
Stroški in čas, ki jih vozlišče prijavi, že vključujeta vse pod njim, zato orodje primerja lastni delež vsakega vozlišča po odštevanju njegovih podrejenih vozlišč — to kaže na dejansko ozko grlo namesto da je vedno izpostavljeno korensko vozlišče.
Kaj se zgodi, če SQLite načrt nima podatkov o stroških?
SQLite EXPLAIN QUERY PLAN ne prijavi stroškov ali časa, zato se drevo še vedno oblikuje in povzetek to pošteno pove namesto da ugiba z označevanjem.
Ali »skrij vozlišča pod« izbriše kaj iz mojega načrta?
Ne — samo izpusti vrsticami nič-delca iz tega prikaza. Vrhnja operacija je vedno vidna, zato drevo ohrani sidro; znova zaženi z nižjim pragom, da spet vidiš vse.
Ali je moj poizvedbeni načrt naložen nekje?
Ne. Razčlenjenje in oblikovanje se izvršita v celoti v vašem brskalniku — načrt in vsa imena tabel in indeksov v njem nikoli ne zapustita vašo napravo.