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

कंपोजिशन टेबल पर इंटरसेक्शन कैसे करें

प्रदर्शन के मामले में आपकी क्वेरी ठीक दिखती है। क्या आपने इसे यह देखने के लिए मापा है कि क्या वास्तव में कोई समस्या है?

अगर (object1_id, object2_id) अद्वितीय है तो आप क्वेरी को अधिक संक्षिप्त रूप से इस प्रकार लिख सकते हैं:

SELECT object1_id
FROM composition
WHERE object2_id IN (id1, id2, ..., id6)
GROUP BY object1_id
HAVING COUNT(*) = 6

ध्यान दें कि 6 प्रदान की गई आईडी की संख्या है। यदि अलग-अलग संख्या में आईडी प्रदान की जाती हैं तो इसे बदला जाना चाहिए। आपको यह देखने के लिए अपने डेटा पर वास्तविक प्रदर्शन को मापना होगा कि क्या इससे कोई गति बढ़ती है।

यदि आप विशिष्टता नहीं मान सकते हैं तो यह काम करना चाहिए:

SELECT object1_id
FROM composition
WHERE object2_id IN (id1, id2, ..., id6)
GROUP BY object1_id
HAVING COUNT(DISTINCT object2_id) = 6

हालांकि सबसे महत्वपूर्ण बात यह सुनिश्चित करना है कि आपके पास उपयुक्त अनुक्रमणिका है आपकी मेज पर! यह दूर है इससे अधिक महत्वपूर्ण है कि आप एक प्रश्न लिखें या दूसरा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ASP.NET MVC5 - उपयोगकर्ताओं को Oracle डेटाबेस में रखना

  2. Oracle कनेक्शन को बंद करना है या नहीं करना है?

  3. एपेक्स:तर्कों वाले पृष्ठ पर लॉगिन करने के बाद पुनर्निर्देशित करें

  4. डायनामिक एसक्यूएल निष्पादित करने वाले ओरेकल पीएल/एसक्यूएल अज्ञात ब्लॉक से परिणामसेट/कर्सर कैसे वापस करें?

  5. Oracle में किसी क्वेरी को कैसे दोहराएं