यदि क्वेरी प्लानर उप-इष्टतम क्वेरी प्लान चुनता है, तो संभावना है कि उसके पास काम करने के लिए अधूरी या भ्रामक जानकारी है।
यह देखें PostgreSQL विकी पेज
सर्वर ट्यूनिंग पर। विशेष रूप से random_page_cost . के अध्यायों पर ध्यान दें और default_statistics_target .
सांख्यिकी पर मैनुअल में संबंधित अध्याय भी पढ़ें नियोजक द्वारा उपयोग किया जाता है
और प्लानर लागत स्थिरांकए> ।
अधिक विशेष रूप से, यह 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 के लिए। इस क्षेत्र में कई महत्वपूर्ण सुधार हुए हैं।