Memahami pernyataan EXPLAIN

Selesai

Gunakan pernyataan EXPLAIN untuk menampilkan rencana eksekusi kueri. EXPLAIN dapat digunakan dengan pernyataan SELECT, INSERT, UPDATE, DELETE, VALUES, EXECUTE, DECLARE, atau CREATE TABLE AS apa pun.

EXPLAIN menampilkan rencana eksekusi untuk kueri, memungkinkan Anda memahami bagaimana PostgreSQL: menjalankan pernyataan, apakah indeks digunakan, bagaimana tabel digabungkan, dan biaya kueri yang tidak biasa.

Sintaks untuk EXPLAIN adalah:

EXPLAIN [ (parameter [, ...] ) ] statement

Parameter opsional adalah:

  • ANALYZE
  • VERBOSE
  • COSTS
  • BUFFER
  • FORMAT

Contohnya:

EXPLAIN ANALYZE SELECT * FROM category ORDER BY cat_id;

Kueri sederhana ini mengembalikan informasi berikut:

Cuplikan layar memperlihatkan Rencana Kueri.

ANALYZE

Opsi ini menjalankan pernyataan, dan mengembalikan rencana kueri. Output dari pernyataan tersebut dibuang, tetapi pernyataan tersebut masih dijalankan. Anda dapat menggabungkan pernyataan ROLLBACK dan EXPLAIN ANALYZE untuk mencegah perubahan diterapkan dengan kueri yang membuat perubahan pada database, seperti INSERT, UPDATE, atau DELETE. Contohnya:

BEGIN;

> EXPLAIN ANALYZE INSERT INTO Animal 
> (ani_id, name, weight_kg, cat_id, enc_id) 
> VALUES (28, 'Robin Robin', 0.5, 1, 2);

ROLLBACK;

VERBOSE

Menampilkan informasi tambahan termasuk:

  • daftar kolom output untuk setiap simpul di pohon rencana
  • tabel dan nama fungsi yang memenuhi syarat skema
  • nama variabel dalam ekspresi bersama dengan alias tabel
  • nama setiap pemicu yang statistiknya ditampilkan

COSTS

Termasuk perkiraan biaya start-up, dan total biaya, ditambah perkiraan jumlah baris dan perkiraan lebar setiap baris.

BUFFER

Buffer hanya dapat digunakan dengan opsi ANALYZE. PostgreSQL menggunakan cache Least Recently Used (LRU) untuk menyimpan data yang sering digunakan dalam memori. Buffer menampilkan berapa banyak data yang berasal dari cache, dan berapa banyak yang diambil dari disk. Menampilkan jumlah hit, baca, dan tulis blok bersama, lokal, dan sementara. Data yang disediakan oleh BUFFERS dapat membantu untuk memahami bagian-bagian kueri yang intensif I/O.

FORMAT

Mendefinisikan format output. XML, JSON, atau YAML berisi informasi yang sama dengan TEXT, tetapi dalam format yang lebih mudah digunakan oleh program. TEXT adalah default.