17. Taktik Keamanan: Menyelamatkan Waktu Membaca: Taktik ERP Skala Global Query Optimization Lewat EXPLAIN ANALYZE

2188 views
Arsitektur Basis Data

Arsitektur Basis Data

Ilustrasi Arsitektur Basis Data Tingkat Enterprise

Perang Melawan Kueri yang Melilit

Sektor bisnis manufaktur kerap kali didera keluhan tajam: "Mengapa halaman Laporan Mutasi Stok lambat sekali untuk terbuka?". Pertanyaan semacam inilah yang membawa para teknisi langsung terjun membelah anatomi perintah-perintah bawah tanah menggunakan tombak terkuat dari PostgreSQL, yakni kompas analitik: EXPLAIN ANALYZE.
Saat Odoo mengeksekusi logika ORM kompleks per baris (misalnya, menelusuri ratusan bom barang atau perpindahan inventory bersarang), hasil SQL yang diludahkan mesin seringkali tak sedap dipandang mata. Kuncinya tidak boleh mengandalkan asumsi. Dengan menyelipkan awalan perintah EXPLAIN ANALYZE terhadap kueri pencarian, administrator Database secara literal akan diberikan bon struk biaya kalkulasi dari proses algoritma tersembunyi yang direncakanan sang Planner Optimizer Postgres.

Anatomi Penyakit Seq Scan dan Solusinya

Sebuah "Seq Scan" (Sequential Scan) yang tersurat dalam log Explain merupakan penanda kutukan bagi tabel raksasa. Mesin terpaksa memeriksa setiap baris kotor dari sudut paling awal sampai sudut terujung kepingan Harddisk hanya demi mencari satu berkas transaksi Odoo yang bernilai Draft. Ini sangat boros I/O (Input/Output).
Seringkali perbaikannya semudah mendirikan sebuah pos palang Index B-Tree di pintu masuk desa data tersebut. Tetapi tahukah Anda bahwa index di Postgres akan terabaikan sia-sia jika Anda menggunakan tipe data secara serampangan? Meng-index teks dengan LIKE '%..%' tanpa dukungan perluasan pg_trgm adalah salah satu penipuan performa yang sering tak disadari banyak pengembang pemula.
sql
-- Mencari Tahu Titik Lemah Query Mutasi Stok
class="text-pink-400 font-bold">EXPLAIN class="text-pink-400 font-bold">ANALYZE 
class="text-pink-400 font-bold">SELECT id, product_id, location_dest_id, date 
class="text-pink-400 font-bold">FROM stock_move 
class="text-pink-400 font-bold">WHERE state = class="text-green-400">'done' class="text-pink-400 font-bold">AND date > class="text-green-400">'2026-03-01';

Penutup dan Rekomendasi Lanjut

Jadikan pemantauan pelacakan dengan auto_explain atau analisis mingguan terhadap log sebagai Standard Operating Procedure (SOP). Mesin ERP tidak bisa menyembuhkan lukanya sendiri; manusialah yang harus turun mendiagnosis dengan alat yang tepat.