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

Oracle डेटालिंक से विलय करते समय अनुकूलन

/*+DRIVING_SITE(rd)*/ संकेत MERGE के साथ काम नहीं करता है क्योंकि ऑपरेशन उस डेटाबेस में चलना चाहिए जहां मर्ज की गई तालिका बैठती है। जो इस मामले में स्थानीय डेटाबेस है। यानी संपूर्ण परिणाम सेट दूरस्थ तालिका से डेटाबेस लिंक पर खींचा जाता है और फिर स्थानीय तालिका से डेटा के विरुद्ध फ़िल्टर किया जाता है।

तो, संकेत त्यागें। मेरा यह भी सुझाव है कि आप IN क्लॉज को जॉइन में बदलें:

Merge into project p
using (select rp.projectID,
              rp.otherdata
       FROM Project ld
            inner join [email protected] rd
                     on rd.projectID = ld.projectID
      where ld.LastUpdated < (sysdate - 6/24)) q
-- This select in the in clause one returns 10 rows. Its a test database.
    On (q.projectID = p.projectID)
    )

कृपया ध्यान रखें कि पर्याप्त विवरण के बिना प्रदर्शन ट्यूनिंग प्रश्नों के उत्तर केवल अनुमान . हैं ।



  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 SQL डेटा में वर्ण ढूँढता है

  2. तालिका के विरुद्ध मानों की सूची की तुलना करना

  3. कॉलम नाम के रूप में दिनांक

  4. Oracle 11g में दिए गए url से फ़ाइल डाउनलोड करने और इसे ब्लॉब प्रकार कॉलम में सहेजने की प्रक्रिया

  5. DBA_TABLES से गणना (*) बनाम NUM_ROWS द्वारा तालिका की Oracle पंक्ति गणना