बहुत दिलचस्प अवलोकन, हालांकि मैं इसे अपने Oracle (संस्करण 12.1.0.2.0) डेटाबेस पर पुन:पेश नहीं कर सका। मुझे यह उल्लेख करना होगा कि मैं ओरेकल लिनक्स 6.5 का उपयोग कर रहा हूं, न कि विंडोज का। वैसे भी, इस सरल, अभी तक दिलचस्प क्वेरी के लिए निष्पादन योजना को भी पोस्ट करना अच्छा होगा।
निष्पादन योजनाओं को पोस्ट करने के लिए बहुत-बहुत धन्यवाद, यह क्वेरी के व्यवहार को बहुत अच्छी तरह से समझाता है। फिर मैं पहली निष्पादन योजना से शुरू करके समझाऊंगा:
|* 2 | HASH JOIN | | 1 | 17 | 8 (0)| 00:00:01 |
| 3 | VIEW | | 2 | 14 | 4 (0)| 00:00:01 |
| 4 | SORT UNIQUE | | 2 | | 4 (50)| 00:00:01 |
| 5 | UNION-ALL | | | | | |
| 6 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
| 7 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
| 8 | VIEW | | 2 | 20 | 4 (0)| 00:00:01 |
| 9 | SORT UNIQUE | | 2 | | 4 (50)| 00:00:01 |
| 10 | UNION-ALL | | | | | |
| 11 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
| 12 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 |
जैसा कि आप देख सकते हैं, ऑप्टिमाइज़र लेफ्ट जॉइन के बजाय इनर जॉइन करना चुनता है, और यह "हैश जॉइन" द्वारा दिखाया जाता है न कि "हैश जॉइन आउटर" जैसा कि होना चाहिए।
ईमानदार होने के लिए, मैंने इस तरह के एक बग के बारे में कुछ भी नहीं सुना (अब तक), इसलिए मैं निम्नलिखित का सुझाव दूंगा:
- अगर इसमें कुछ गैर-दस्तावेज पैरामीटर हैं तो pfile/spfile देखें।
- ऐसे मामले हैं जब इन मापदंडों को सेट करने से प्रदर्शन में सुधार हो सकता है, लेकिन कई बार, "कर्म है ...", जैसा कि कहा जाता है, और आप वास्तव में बहुत खराब तरीके से अप्रत्याशित निष्पादन/प्रदर्शन व्यवहार कर सकते हैं।