अनुक्रमणिका केवल PostgreSQL में संबंधित विभाजनों का स्कैन करने के लिए ठीक काम करती है। लेकिन, आपको इसके काम करने के लिए सब कुछ ठीक से सेट करना होगा, और http://www.postgresql.org/docs/current/static/ddl-partitioning.html
समझने वाली मुख्य बात यह है कि अनुक्रमिक स्कैन से बचने के लिए, आपको PostgreSQL को पर्याप्त जानकारी प्रदान करनी होगी ताकि यह साबित हो सके कि कुछ विभाजन में वह डेटा नहीं हो सकता जिसे आप ढूंढ रहे हैं; फिर उन्हें क्वेरी परिणामों के संभावित स्रोतों के रूप में छोड़ दिया जाता है। जिस आलेख से आप लिंक करते हैं वह इसे seq स्कैन समस्या के समाधान के रूप में इंगित करता है:"यदि आप प्रत्येक विभाजन के दिनांक फ़ील्ड में सीमा बाधाओं को जोड़ते हैं, तो इस क्वेरी को एक लूप में अनुकूलित किया जा सकता है जहां आप पहले "नवीनतम" विभाजन को क्वेरी करते हैं और काम करते हैं जब तक आपको एक ऐसा मान नहीं मिल जाता है जो शेष सभी विभाजनों की सीमा से अधिक है।"--लेकिन उस परिवर्तन के बाद आपको दिखाई देने वाली बेहतर योजना नहीं दिखाता है।
कुछ सामान्य गलतियाँ जो आपने की होंगी:
-postgresql.conf फ़ाइल में बाधा_बहिष्करण पैरामीटर डिफ़ॉल्ट रूप से बंद है। उस डिफ़ॉल्ट के साथ, आपको वह नहीं मिलेगा जिसकी आप अपेक्षा करते हैं।
-चेक का उपयोग करके गैर-अतिव्यापी विभाजन नहीं बनाए, जो योजनाकार को यह जानने से रोकता है कि उनमें से प्रत्येक के अंदर क्या है। इस चरण से चूकना संभव है लेकिन फिर भी अपने डेटा को सही विभाजन में ठीक से प्राप्त करें, योजनाकार को यह पता नहीं चलेगा।
-प्रत्येक विभाजन पर एक सूचकांक नहीं रखा, केवल मास्टर टेबल पर एक बनाया। यह आपको केवल प्रासंगिक विभाजन पर एक अनुक्रमिक स्कैन देगा, इसलिए ऊपर जैसा बुरा नहीं है, लेकिन अच्छा भी नहीं है।
आने वाले पोस्टग्रेएसक्यूएल रिलीज में इसे आसान बनाने के लिए कुछ काम है (सेटिंग बाधा_पार्टिशन 8.4 में काफी स्वचालित है और कुछ प्रकार के विभाजन सेटअप स्वचालन में काम किया जा रहा है)। अभी, यदि आप निर्देशों का ध्यानपूर्वक पालन करते हैं और इन सभी समस्याओं से बचते हैं, तो यह काम करना चाहिए।