एक बिटमैप फ़िल्टर तभी फायदेमंद होता है जब वह चयनात्मक हो। क्वेरी ऑप्टिमाइज़र यह तय करता है कि जब एक अनुकूलित बिटमैप फ़िल्टर मददगार होने के लिए पर्याप्त रूप से चयनात्मक होता है और फ़िल्टर का उपयोग किन ऑपरेटरों के लिए किया जाता है। अनुकूलक एक स्टार के सभी विभागों पर अनुकूलित बिटमैप फ़िल्टर फ़ील्ड करता है और यह तय करने के लिए लागत नियमों का उपयोग करता है कि योजना सबसे छोटी अनुमानित कार्यान्वयन लागत का समर्थन करती है या नहीं।
जब अनुकूलित बिटमैप फ़िल्टर गैर-चयनात्मक होता है, तो लागत अनुमान आम तौर पर बहुत अधिक होता है और योजना को अस्वीकार कर दिया जाता है। योजना में अनुकूलित बिटमैप फ़िल्टर का पता लगाने पर विचार करते समय, हैश जॉइन वेरिएंट के लिए ऑप्टिमाइज़र दृश्यों में हैश जॉइन का दायाँ-गहरा स्टैक शामिल होता है। डाइमेंशन टेबल वाले जॉइन को पहले संभावित सबसे चुनिंदा जॉइन को निष्पादित करने के लिए लागू किया जाता है।
जिस ऑपरेटर में अनुकूलित बिटमैप फ़िल्टर का उपयोग किया जाता है, उसमें PROBE ([Opt_Bitmap1001], {[column_name]} [, 'IN ROW']) के डिज़ाइन में एक बिटमैप विधेय शामिल होता है। बिटमैप निम्न डेटा पर रिपोर्ट की भविष्यवाणी करता है:
-
बिटमैप नाम बिटमैप ऑपरेटर में पेश किए गए नाम से संबंधित है। उपसर्ग 'Opt_' दर्शाता है कि एक अनुकूलित बिटमैप फ़िल्टर का उपयोग किया गया है।
-
कॉलम के विपरीत जांच की गई। यह वह शब्द है जिससे फ़िल्टर किया गया डेटा ट्री के माध्यम से प्रवाहित होता है।
-
क्या बिटमैप जांच को इन-पंक्ति अनुकूलन की आवश्यकता है। जब यह होता है, तो बिटमैप जांच IN ROW पैरामीटर के साथ शुरू की जाती है। वैकल्पिक रूप से, यह पैरामीटर अनुपलब्ध है।
अनुकूलित बिटमैप फ़िल्टरिंग आवश्यकताएँ
अनुकूलित बिटमैप फ़िल्टरिंग की निम्नलिखित आवश्यकताएं हैं -
-
फैक्ट टेबल में कम से कम 100 पेज होने की उम्मीद है। अनुकूलक ने छोटी तालिकाओं को आयाम तालिकाएँ माना।
-
तथ्य तालिका और आयाम तालिका के बीच केवल आंतरिक जुड़ाव माना जाता है।
-
फैक्ट टेबल और डायमेंशन टेबल के बीच जॉइन विधेय सिंगल कॉलम जॉइन होना चाहिए, लेकिन इसके लिए प्राइमरी-की-टू-फॉरेन-की रिलेशनशिप होने की जरूरत नहीं है। एक पूर्णांक-आधारित कॉलम चुना जाता है।
-
आयामों के साथ जुड़ने का इलाज केवल तभी किया जाता है जब आयाम इनपुट कार्डिनैलिटी तथ्य तालिका से इनपुट कार्डिनैलिटी से छोटी होती है।
बिटमैप फ़िल्टरिंग और अनुकूलित बिटमैप फ़िल्टरिंग को बिटमैप शो प्लान ऑपरेटर का उपयोग करके क्वेरी प्लान में निष्पादित किया जाता है। बिटमैप फ़िल्टरिंग का उपयोग केवल समानांतर क्वेरी योजनाओं में किया जाता है जिसमें हैश या मर्ज जॉइन का उपयोग किया जाता है। अनुकूलित बिटमैप फ़िल्टरिंग केवल समानांतर क्वेरी योजनाओं के लिए प्रासंगिक है जिसमें हैश जॉइन का उपयोग किया जाता है।
दोनों ही मामलों में, बिटमैप फ़िल्टर हैश जॉइन के बिल्ड इनपुट (आयाम तालिका) पक्ष पर उत्पन्न होता है; लेकिन, वास्तविक फ़िल्टरिंग आम तौर पर Parallelism ऑपरेटर के भीतर पूरा किया जाता है, जो हैश जॉइन के जांच इनपुट (तथ्य तालिका) की तरफ होता है। जब जॉइन एक पूर्णांक कॉलम पर आधारित होता है, तो फ़िल्टर का उपयोग सीधे पैरेललिज़्म ऑपरेटर के बजाय मूल तालिका या इंडेक्स स्कैन ऑपरेशन में किया जा सकता है। इस तकनीक को इन-रो ऑप्टिमाइज़ेशन के रूप में जाना जाता है।