Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORACLE 2 हैंगिंग लेफ्ट जॉइन के साथ LITERAL का उपयोग करके बाहरी जॉइन पर विधेय के लिए LEFT अधिकांश तालिका से पंक्ति को बाहर करता है

बहुत दिलचस्प अवलोकन, हालांकि मैं इसे अपने 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 देखें।
  • ऐसे मामले हैं जब इन मापदंडों को सेट करने से प्रदर्शन में सुधार हो सकता है, लेकिन कई बार, "कर्म है ...", जैसा कि कहा जाता है, और आप वास्तव में बहुत खराब तरीके से अप्रत्याशित निष्पादन/प्रदर्शन व्यवहार कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. चीनी प्रतीकों को oracle DB . में चिपकाएं

  2. Oracle pl/sql . में तालिका बनाएं या बदलें

  3. पीएल/एसक्यूएल में टेबल ट्रांसफॉर्मेशन/फील्ड पार्सिंग

  4. Oracle OCCI ResultSet में कॉलम के लिए डेटा प्रकार की जानकारी प्राप्त करना

  5. SQL दिनांक रूपांतरण परिणाम अमान्य संख्या प्रारूप मॉडल पैरामीटर में।