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

क्या जॉइन मामले के ऑन क्लॉज में संदर्भित तालिकाओं का क्रम है?

JOIN FROM . में तालिकाओं को सही क्रम में रखकर आदेश को बाध्य किया जा सकता है खंड:

  1. MySQL का एक विशेष खंड है जिसे STRAIGHT_JOIN . कहा जाता है जो आदेश को महत्वपूर्ण बनाता है।

    यह b.id . पर एक अनुक्रमणिका का उपयोग करेगा :

    SELECT  a.Name, b.Status
    FROM    a
    STRAIGHT_JOIN
            b
    ON      b.ID = a.StatusID
    

    और यह a.StatusID . पर एक अनुक्रमणिका का उपयोग करेगा :

    SELECT  a.Name, b.Status
    FROM    b
    STRAIGHT_JOIN
            a
    ON      b.ID = a.StatusID
    
  2. Oracle का एक विशेष संकेत है ORDERED JOIN . को लागू करने के लिए आदेश:

    यह b.id . पर एक अनुक्रमणिका का उपयोग करेगा या b . पर हैश तालिका बनाएं :

    SELECT  /*+ ORDERED */
            *
    FROM    a
    JOIN    b
    ON      b.ID = a.StatusID
    

    और यह a.StatusID . पर एक अनुक्रमणिका का उपयोग करेगा या a . पर हैश तालिका बनाएं :

    SELECT  /*+ ORDERED */
            *
    FROM    b
    JOIN    a
    ON      b.ID = a.StatusID
    
  3. SQL सर्वर में FORCE ORDER नामक एक संकेत होता है ऐसा ही करने के लिए:

    यह b.id . पर एक अनुक्रमणिका का उपयोग करेगा या b . पर हैश तालिका बनाएं :

    SELECT  *
    FROM    a
    JOIN    b
    ON      b.ID = a.StatusID
    OPTION (FORCE ORDER)
    

    और यह a.StatusID . पर एक अनुक्रमणिका का उपयोग करेगा या a . पर हैश तालिका बनाएं :

    SELECT  *
    FROM    b
    JOIN    a
    ON      b.ID = a.StatusID
    OPTION (FORCE ORDER)
    
  4. PostgreSQL दोस्तों, क्षमा करें। आपकी TODO सूची कहते हैं:

    <ब्लॉककोट>

    अनुकूलक संकेत (नहीं चाहिए)

    ऑप्टिमाइज़र संकेतों का उपयोग ऑप्टिमाइज़र में समस्याओं को हल करने के लिए किया जाता है। इसके बजाय हम समस्याओं की सूचना देंगे और उन्हें ठीक करेंगे।

तुलना में आदेश के लिए, यह किसी भी RDBMS में मायने नहीं रखता है , AFAIK।

हालांकि मैं व्यक्तिगत रूप से हमेशा यह अनुमान लगाने की कोशिश करता हूं कि कौन सा कॉलम खोजा जाएगा और इस कॉलम को बाईं ओर रखा जाएगा (इसके लिए यह एक lvalue जैसा प्रतीत होता है। )।

देखें यह उत्तर अधिक विवरण के लिए।



  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 प्रक्रिया बनाएं

  2. अमान्य Oracle URL निर्दिष्ट:OracleDataSource.makeURL

  3. Oracle फ़ंक्शन से RefCursor कैसे वापस करें?

  4. कैसे पता करें कि स्थापित Oracle क्लाइंट 32 बिट या 64 बिट है?

  5. Oracle पर सशर्त योग