クエリプランナーが次善のクエリプランを選択した場合、処理する情報が不完全または誤解を招く可能性があります。
この
また、統計に関するマニュアルの対応する章もお読みください。プランナーが使用
および
具体的には、statistics target
を増やすと役立つ場合があります 次の列の場合:
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;
これらはフィルターに含まれ、
になります
もっとあります 。プレーナーが見積もりから大きく外れているすべての列を確認してください。デフォルトは100です。>>1000行のテーブルにのみ意味があります。設定を試してください。 ANALYZE
を実行します 変更を有効にするために、後でテーブルに表示します。
部分インデックスの作成にも役立つ場合があります postgres(sales_orders.retailer_id) WHERE retailer_id IS NOT NULL
(一般的なNULL値の程度によって異なります)。
あなたを助けるかもしれないもう一つのことはアップグレードすることです 最新バージョン9.1に。この分野では多くの大幅な改善がありました。