Jika perencana kueri memilih paket kueri yang kurang optimal, kemungkinan ada informasi yang tidak lengkap atau menyesatkan untuk dikerjakan.
Lihat laman Wiki PostgreSQL
ini pada penyetelan server. Terutama perhatikan bab tentang random_page_cost dan default_statistics_target .
Baca juga bab terkait dalam manual di Statistik Digunakan oleh Perencana
dan Konstanta Biaya Perencana .
Lebih khusus lagi, mungkin membantu untuk meningkatkan statistics target
untuk kolom berikut:
ALTER TABLE postgres.products ALTER COLUMN id SET STATISTICS 1000;
ALTER TABLE postgres.sales_orders ALTER COLUMN retailer_id SET STATISTICS 1000;
ALTER TABLE postgres.sales_orders ALTER COLUMN company_id SET STATISTICS 1000;
ALTER TABLE goods_return_notes ALTER COLUMN retailer_id SET STATISTICS 1000;
ALTER TABLE goods_return_notes ALTER COLUMN company_id SET STATISTICS 1000;
ALTER TABLE retailer_category_leaf_nodes ALTER COLUMN tree_left SET STATISTICS 1000;
ALTER TABLE channels ALTER COLUMN principal_id SET STATISTICS 1000;
Ini terlibat dalam filter yang menghasilkan
Ada lebih . Periksa setiap kolom di mana planer banyak menyimpang dari perkiraan. Standarnya hanya 100. Hanya masuk akal untuk tabel dengan>> 1000 baris. Percobaan dengan pengaturan. Jalankan ANALYZE
di tabel setelahnya agar perubahan diterapkan.
Mungkin juga membantu untuk membuat indeks parsial pada postgres(sales_orders.retailer_id) WHERE retailer_id IS NOT NULL
(tergantung pada seberapa umum nilai NULL).
Hal lain yang dapat membantu Anda adalah meningkatkan versi ke versi terbaru 9.1. Ada sejumlah peningkatan substansial di bidang ini.