Selekta BETA EN Unduh untuk Mac
DOC 15

Explain plan

Diperbarui 23 Oktober 2026

Tekan ⌘E di SQL editor untuk melihat rencana eksekusi statement di posisi kursor tanpa menjalankannya, atau ⌥⌘E untuk menjalankannya dan melihat waktu sebenarnya. Rencana tampil di tab hasil Explain sebagai pohon, dengan langkah paling lambat atau paling mahal ditandai.

Explain plan berupa pohon dengan bar biaya dan node paling lambat ditandai

Explain atau Explain Analyze

Aksi Tombol Fungsinya
Explain ⌘E Meminta perkiraan rencana dari planner. Statement tidak dijalankan.
Explain Analyze ⌥⌘E Menjalankan statement dan melaporkan yang benar-benar terjadi: baris aktual, loop dan waktu per langkah.

Keduanya bekerja pada statement di posisi kursor, atau pada teks yang Anda pilih. Tombol Explain di toolbar editor sama dengan ⌘E. Selama rencana diproses, header menampilkan jam berjalan, jadi Anda tahu Explain Analyze sedang benar-benar mengeksekusi statement.

Yang dilaporkan tiap database

Selekta mengirim statement dengan sintaks explain milik database itu sendiri, lalu membaca hasilnya.

Database Explain Explain Analyze
PostgreSQL EXPLAIN (FORMAT JSON) EXPLAIN (ANALYZE, BUFFERS, FORMAT JSON)
MySQL dan MariaDB EXPLAIN FORMAT=JSON EXPLAIN ANALYZE
SQL Server SET SHOWPLAN_XML ON SET STATISTICS XML ON
SQLite EXPLAIN QUERY PLAN EXPLAIN QUERY PLAN

PostgreSQL dengan Explain Analyze juga menampilkan waktu planning, waktu eksekusi, serta shared buffer yang kena cache dan yang dibaca. SQL Server dengan Statistics XML menampilkan waktu elapsed dan CPU. Di SQL Server, Explain Analyze menjalankan statement tetapi hanya menampilkan rencananya, bukan baris hasil statement itu.

SQLite

SQLite hanya melaporkan tabel mana yang di-scan atau dicari dan index mana yang dipakai. Tidak ada biaya, perkiraan baris atau waktu, jadi tidak ada pohon dan bar. Selekta menampilkan rencana sebagai teks, seperti yang dicetak shell sqlite3, dengan panduan singkat di bawahnya: SEARCH dengan index itu bagus, SCAN berarti setiap baris tabel itu dibaca. Pakai Measure with Run timing untuk menjalankan statement seperti biasa dan melihat lamanya.

Membaca pohon rencana

Bar ringkasan di atas menyebut mode explain dan menampilkan total yang dilaporkan database. Di sebelah kanan, pilih Tree, Table atau Raw.

Di tampilan Tree, setiap baris adalah satu langkah rencana, menjorok di bawah induknya:

  • Node adalah operasinya, misalnya Seq Scan, Index Scan, Hash Join atau Full table scan, diikuti tabel, index dan filternya.
  • Cost dan Rows est adalah perkiraan planner.
  • Dengan Explain Analyze ada juga Rows actual, Total (waktu termasuk langkah anak) dan Self (waktu langkah ini saja).
  • Bar menunjukkan Self time dengan Explain Analyze, atau Self cost tanpanya.

Langkah dengan porsi terbesar diberi tag slowest (dengan waktu) atau costliest (hanya perkiraan), dan langsung terpilih saat rencana terbuka. Jumlah baris berwarna peringatan berarti perkiraannya meleset lebih dari 10 kali, biasanya tanda statistik tabel sudah usang.

Pakai tombol panah untuk bergerak di pohon, dan untuk menutup atau membuka sebuah langkah. Klik panah di samping langkah untuk melakukan hal yang sama dengan mouse.

Node terpilih

Di bawah pohon, langkah yang dipilih menampilkan detailnya: loop, baris yang dibuang filter, buffer, ruang sort, worker paralel, logical read, atau perkiraan I/O dan CPU, tergantung database. Langkah paling lambat juga mendapat Hint: porsinya dari waktu eksekusi atau biaya, dan kalau langkah itu full scan dengan filter, catatan bahwa index pada kolom yang difilter mungkin membantu.

Tampilan Table dan Raw

Table menampilkan setiap langkah sebagai baris dengan kolom parent, node, detail, cost, rows_est, rows_actual, loops, total_ms dan self_ms. Klik header kolom angka untuk mengurutkan. ⌘C menyalin baris yang dipilih, atau semua baris kalau tidak ada yang dipilih, sebagai teks dipisah tab.

Raw menampilkan rencana persis seperti yang dikirim server: JSON untuk PostgreSQL dan MySQL, XML showplan untuk SQL Server. Copy plan menyalinnya ke clipboard, misalnya untuk dibagikan ke rekan kerja.