Nếu người lập kế hoạch truy vấn chọn các kế hoạch truy vấn không tối ưu, thì rất có thể nó có thông tin không đầy đủ hoặc gây hiểu nhầm để làm việc với.
Xem trang PostgreSQL Wiki
này trên máy chủ điều chỉnh. Đặc biệt chú ý đến các chương trên trang_nghiệp_mẫu_cầu và default_st Statistics_target .
Cũng đọc các chương tương ứng trong sách hướng dẫn về Thống kê Được sử dụng bởi Người lập kế hoạch
và Hằng số chi phí của công cụ lập kế hoạch .
Cụ thể hơn, nó có thể giúp tăng statistics target
cho các cột sau:
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;
Chúng liên quan đến các bộ lọc dẫn đến
Còn khác . Kiểm tra mọi cột mà máy bào lệch nhiều so với ước tính. Mặc định chỉ là 100. Chỉ có ý nghĩa đối với các bảng có>> 1000 hàng. Thử nghiệm với cài đặt. Chạy ANALYZE
trên các bảng sau đó để các thay đổi có hiệu lực.
Nó cũng có thể hữu ích để tạo chỉ mục một phần trên postgres(sales_orders.retailer_id) WHERE retailer_id IS NOT NULL
(tùy thuộc vào mức độ phổ biến của giá trị NULL).
Một điều khác có thể giúp bạn là nâng cấp lên phiên bản 9.1 mới nhất. Đã có một số cải tiến đáng kể trong lĩnh vực này.