İçeriğe atla
%100 yerel

SQL EXPLAIN Plan Biçimlendirici

Yapıştırılan EXPLAIN veya EXPLAIN ANALYZE planını okunabilir, girintili bir ağaca dönüştürür ve yavaş kısımları işaretler.

Giriş
Çıkış

SQL EXPLAIN Plan Biçimlendirici

EXPLAIN veya EXPLAIN ANALYZE çıktısını yapıştırın, bu araç metin duvarını işlemlerin girintili ağacına dönüştürür; her düğümün maliyeti, satır sayısı ve zamanlaması yanında listelenir. Yoğun bir "cost=… rows=… actual time=…" açıklamaları bloğunu taramak yerine, bir bakışta okuyabileceğiniz bir şekil elde edersiniz — hangi tarama hangi birleştirmeyi besler ve sorgu zamanını nerede harcamaktadır.

Veritabanınıza uygun lehçeyi seçin: PostgreSQL ve MySQL EXPLAIN ANALYZE aynı girintili "-> " ağacını kullanır, MySQL'in klasik (ANALYZE olmayan) EXPLAIN tablosu satır satır ayrıştırılır ve SQLite EXPLAIN QUERY PLAN kendi ASCII ağacını ve id/parent biçimlerini alır. Düz metin yapıştırın veya PostgreSQL EXPLAIN (FORMAT JSON) ve MySQL EXPLAIN FORMAT=JSON çıktısı için giriş biçimini JSON'a geçirin. Satır sayılarını göster, tahmini ve fiili satırları değiştirir, pahalı düğüm eşiği, toplam maliyetin veya zamanın yüzde kaçının düğüne "pahalı" işareti kazandıracağını kontrol eder ve aşağıyı gizle, uzun bir plandan düşük maliyetli dalları budayarak aykırı değerleri vurgular. Çıkış biçimini girintili ağaç ve düz hizalanmış tablo arasında değiştirin.

Her düğümün bildirdiği maliyet ve zaman kumulatiftir — zaten altındaki her şeyi içerir — bu nedenle araç herhangi bir şeyi sıralamadan önce her düğümün çocuklarını çıkarır, bu da sorgunun üst düzey düğümünün her zaman "pahalı" görünmesini engeller. Altındaki özet satırı işlemleri toplar, kaç tanesinin işaretlendiğini sayar ve kök düğümden yaprak düğüme kadar en yavaş dalı adlandırır, böylece hangi işlem zincirinin incelenmesi gerektiğini tam olarak bilirsiniz.

Her şey yerel olarak tarayıcınızda çalışır — bir sorgu planı, tarayıcınızdan kurtulmak isteyeceğiniz tablo ve dizin adlarını ortaya çıkarabilir ve hiçbir şey hiçbir yere yüklenmiyor. Biçimlendirilmiş ağacı kopyalayın, .txt dosyası olarak indirin veya eşiği ayarlamak ve yeniden biçimlendirmek için çıktıyı geri girdiye gönderin.

FAQ

Hangi EXPLAIN biçimleri destekleniyor?
PostgreSQL ve MySQL 8 EXPLAIN ANALYZE ağaç çıktısı, MySQL'in klasik tablosu EXPLAIN, SQLite EXPLAIN QUERY PLAN (hem ASCII ağaç hem de ham id/parent/detail satırları) ve PostgreSQL ile MySQL'in JSON plan biçimleri.
Üst düzey düğüm neden her zaman "pahalı" olarak işaretlenmemiş?
Bir düğümün rapor ettiği maliyet ve zaman zaten altındaki her şeyi içerir, bu nedenle araç her düğümün kendi payını çocuklarını çıkardıktan sonra karşılaştırır — bu, her zaman kökü vurgulamak yerine gerçek darboğazı gösterir.
SQLite planında maliyet verisi yoksa ne olur?
SQLite EXPLAIN QUERY PLAN maliyet veya zamanlamayı raporlamaz, bu nedenle ağaç yine de biçimlendirilir és özet bunu dürüst bir şekilde belirtir, tahmin etmek yerine.
"Bunun Altını Gizle" planımdan herhangi bir şeyi silmek mi?
Hayır — yalnızca bu görünüm için düşük maliyetli satırları hariç tutar. Kök işlem her zaman görünür kalır böylece ağaç tutturulmuş kalır; daha düşük bir eşik ile yeniden çalıştırarak her şeyi görebilirsiniz.
Sorgu planom herhangi bir yere yüklenmek mi?
Hayır. Ayrıştırma és biçimlendirme tamamen tarayıcınızda gerçekleşir — plan és içindeki herhangi bir tablo veya dizin adı hiçbir zaman cihazınızdan ayrılmaz.