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

लेफ्ट जॉइन इनर जॉइन की तुलना में काफी तेज है

लेफ्ट जॉइन तेज लगता है क्योंकि SQL को पहले छोटे सेलेक्ट करने के लिए मजबूर किया जाता है और फिर रिकॉर्ड के इस छोटे सेट में शामिल हो जाता है। किसी कारण से ऑप्टिमाइज़र स्वाभाविक रूप से ऐसा नहीं करना चाहता।

जॉइन को सही क्रम में होने के लिए बाध्य करने के 3 तरीके:

  1. एक अस्थायी तालिका (या तालिका चर) में डेटा का पहला सबसेट चुनें और फिर उसमें शामिल हों
  2. लेफ्ट जॉइन का उपयोग करें (और याद रखें कि यह अलग डेटा लौटा सकता है क्योंकि यह लेफ्ट जॉइन है न कि इनर जॉइन)
  3. फोर्स ऑर्डर कीवर्ड का प्रयोग करें। ध्यान दें कि यदि तालिका आकार या स्कीमा बदलते हैं तो क्वेरी योजना सही नहीं हो सकती है (देखें https://dba.stackexchange.com/questions/45388/forcing-join-order )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - तालिका बनाते समय एक साथ उपयोग किए जाने पर प्राथमिक कुंजी, अद्वितीय कुंजी और कुंजी का अर्थ

  2. इंडेक्स बनाते समय INCLUDE क्लॉज का उपयोग क्यों करें?

  3. SQL लोकलडीबी को उसी मशीन पर अन्य उपयोगकर्ताओं के साथ कैसे साझा करें?

  4. खाली पंक्तियों के लिए भी सप्ताह के आधार पर संक्षेप करें

  5. SQL सर्वर 2008 - बहु-मान कॉलम को अद्वितीय मानों वाली पंक्तियों में विभाजित करें