Sări la conținut
Complet local

Formatator de plan EXPLAIN SQL

Transformaţi un plan EXPLAIN sau EXPLAIN ANALYZE într-o arbore lizibilă şi indentată cu părţile lente marcate.

Intrare
Ieșire

Formatator de plan EXPLAIN SQL

Lipiţi ieşirea brută a EXPLAIN sau EXPLAIN ANALYZE şi acest instrument transformă peretele de text într-o arbore indentată de operaţii, cu costul, numrul de rânduri şi timing-ul fiecărui nod aliniate alături. În loc să scanezaţi un bloc dens de anotări "cost=… rows=… actual time=…", obţineţi o formă pe care o puteţi citi dintr-o privire — care scan alimentează care join şi unde consulta chiar petrece timp.

Alegeţi dialectul care se potriveşte bazei dvs. de date: EXPLAIN ANALYZE PostgreSQL şi MySQL folosesc aceeaşi arbore indentată "-> ", EXPLAIN clasic tabular MySQL este analizat rând cu rând, iar EXPLAIN QUERY PLAN SQLite are propriul format ASCII-arbore şi id/parent. Lipiţi text simplu sau schimbaţi formatul de intrare la JSON pentru EXPLAIN (FORMAT JSON) PostgreSQL şi ieşire EXPLAIN FORMAT=JSON MySQL. Arătaţi numrul de rânduri comută cifrele rândurilor estimate faţă de cele reale, pragul nodului costisitor controleaza ce procent din costul total sau timp determină un nod să merite marca "costisitor", iar ascundeţi nodurile sub permite eliminarea ramurilor cu cost redus dintr-un plan lung pentru a face outlierurile evidente. Comutaţi ieşirea între o arbore indentată şi un tabel simplu aliniat.

Costul şi ora pe care le raportează fiecare nod sunt cumulative — includ deja tot ce este dedesubt — deci instrumentul scade copiii fiecărui nod înainte de a clasifica orice, ceea ce împiedică nodul de nivel superior al consulei să arate întotdeauna ca "costisitor". Linia rezumat sub plan totalizeaza operaţiile, numra câţi au fost marcaţi, şi numeste ramura cea mai lentă de la rădăcină la frunză pentru a şti exact ce lanţ de operaţii să investigaţi mai întâi.

Totul se execută local în browserul dvs. — un plan de interogare poate dezvălui nume de tabele şi indecşi pe care preferaţi să nu-l lipiţi într-un formular web aleatoriu, şi nimic nu este încărcat nicăieri. Copiaţi arborele formatat, descărcaţi-l ca fişier .txt sau trimiteţi ieşirea înapoi la intrare pentru a ajusta pragul şi reformata.

FAQ

Ce formate EXPLAIN înţelege?
Ieşire arbore EXPLAIN ANALYZE PostgreSQL şi MySQL 8, EXPLAIN tabular clasic MySQL, EXPLAIN QUERY PLAN SQLite (atât arbore ASCII cât şi rânduri brute id/parent/detail), plus formate plan JSON PostgreSQL şi MySQL.
De ce nodul de nivel superior nu este întotdeauna marcat ca scump?
Costul şi ora raportate de un nod includ deja tot ce este dedesubt, deci instrumentul compară propria cota a fiecărui nod după scăderea copiilor — asta este ce indică adevăratul gât de sticlă în loc să evidenţieze întotdeauna rădăcina.
Ce se întâmplă dacă planul SQLite nu are date de cost?
EXPLAIN QUERY PLAN SQLite nu raportează cost sau timing, deci arborele se formateaza în continuare şi rezumatul spune sincer în loc să ghicească o evidenţiere.
Aşa că "ascundeţi nodurile sub" şterge ceva din planul meu?
Nu — doar omite rândurile cu cot redusă din această vizualizare. Operaţia rădăcină rămâne întotdeauna vizibilă pentru a menţine ancorajul arborelui; reexecutaţi cu prag inferior pentru a vedea totul din nou.
Este planul meu de interogare încărcat oriunde?
Nu. Analiza şi formatarea se întâmplă în întregime în browserul dvs. — planul şi orice nume de tabel sau index în el, nu pleacă niciodată de pe dispozitivul dvs.