Visualisasi EXPLAIN PostgreSQL
Ubah JSON EXPLAIN ANALYZE menjadi pohon rencana yang mudah dibaca, lengkap dengan waktu, estimasi, dan buffer
Masukan
Tempel keluaran EXPLAIN (FORMAT JSON). Keluaran psql dengan header QUERY PLAN dan penanda + juga didukung.
Hingga 5 MB, dianalisis di browser Anda dan tidak pernah disimpan.
Ringkasan
Jalankan perintah di bawah, tempel hasil JSON di sebelah kiri, atau muat contoh.
Perintah yang disarankan
EXPLAIN ( ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON ) SELECT ...;
ANALYZE menjalankan pernyataan. Bungkus INSERT, UPDATE, atau DELETE dengan BEGIN dan ROLLBACK.
Rencana
Menunggu rencana EXPLAIN.
Alat Terkait
Apa yang ditampilkan
PostgreSQL EXPLAIN Visualizer mengubah keluaran EXPLAIN (FORMAT JSON) menjadi pohon rencana yang dapat dilipat, tabel node yang dapat diurutkan, dan JSON mentah yang terformat. Ringkasan menampilkan waktu eksekusi dan perencanaan, jumlah node, node paling lambat, selisih estimasi baris terbesar, dan blok shared read. Pilih node mana pun untuk melihat semua field yang dilaporkan PostgreSQL.
Cara mengambil rencana
Jalankan EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL, VERBOSE, FORMAT JSON) diikuti kueri Anda, lalu tempel hasilnya. Keluaran psql dengan header QUERY PLAN, penanda lanjutan + dan footer jumlah baris dibersihkan otomatis. ANALYZE menjalankan pernyataan, jadi bungkus INSERT, UPDATE, dan DELETE dengan BEGIN dan ROLLBACK. Rencana tanpa ANALYZE tetap menampilkan biaya dan estimasi, tetapi temuan berbasis waktu dilewati.
Cara metrik dihitung
Waktu total adalah waktu aktual per perulangan dikali jumlah perulangan; di bawah node Gather nilainya dibagi jumlah proses agar kerja paralel tidak dihitung berulang. Waktu sendiri dikurangi waktu total node anak dan dibatasi minimal nol, sehingga merupakan perkiraan untuk rencana paralel, CTE, InitPlan, dan SubPlan. Faktor estimasi membandingkan baris aktual dan estimasi per perulangan. Jumlah buffer di EXPLAIN sudah termasuk node anak, sehingga nilai sendiri dikurangi milik anak. Ukuran blok diasumsikan 8 kB bawaan.
Temuan dan batasannya
Temuan adalah pengamatan dengan angka dari rencana: selisih estimasi baris yang besar, Nested Loop dengan banyak eksekusi sisi dalam, pemindaian sekuensial yang membuang sebagian besar baris, sort dan hash yang tumpah ke disk, file sementara, pembacaan dari luar shared buffers, dan node yang mendominasi waktu eksekusi. Sarannya hati-hati dan tidak pernah menyebut indeks tertentu untuk dibuat, karena rencana saja tidak menunjukkan frekuensi kueri, beban tulis, atau distribusi data.
Privasi
Rencana dapat memperlihatkan nama tabel, nama skema, predikat, dan nilai literal. Rencana diurai di browser Anda, rencana besar di Web Worker, dan tidak pernah diunggah, dicatat, atau disimpan. Hanya tampilan yang dipilih (Pohon, Tabel, atau Mentah) yang diingat.
