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

क्या एएनएसआई जॉइन बनाम गैर-एएनएसआई जॉइन क्वेरी अलग-अलग प्रदर्शन करेगी?

दो प्रश्न समान हैं, दूसरे को छोड़कर ANSI-92 SQL सिंटैक्स है और पहला पुराना SQL सिंटैक्स है जिसमें जॉइन क्लॉज़ शामिल नहीं है। उन्हें ठीक उसी आंतरिक क्वेरी योजना का निर्माण करना चाहिए, हालांकि आप जांचना पसंद कर सकते हैं।

आपको कई कारणों से ANSI-92 सिंटैक्स का उपयोग करना चाहिए

  • जॉइन क्लॉज का उपयोग रिलेशनशिप लॉजिक को फिल्टर लॉजिक (WHERE) से अलग करता है और इस तरह साफ और समझने में आसान होता है।
  • इस विशेष क्वेरी से कोई फर्क नहीं पड़ता, लेकिन कुछ परिस्थितियां हैं जहां पुराने बाहरी सिंटैक्स (+ का उपयोग करके) अस्पष्ट है और क्वेरी परिणाम इसलिए कार्यान्वयन पर निर्भर हैं - या क्वेरी को बिल्कुल भी हल नहीं किया जा सकता है। ये ANSI-92 के साथ नहीं होते हैं
  • यह एक अच्छा अभ्यास है क्योंकि अधिकांश डेवलपर्स और dba आजकल ANSI-92 का उपयोग करेंगे और आपको मानक का पालन करना चाहिए। निश्चित रूप से सभी आधुनिक क्वेरी टूल ANSI-92 उत्पन्न करेंगे।
  • जैसा कि @gbn द्वारा बताया गया है, यह आकस्मिक क्रॉस जॉइन से बचने की प्रवृत्ति रखता है।

स्वयं मैंने कुछ समय के लिए ANSI-92 का विरोध किया क्योंकि पुराने सिंटैक्स के लिए थोड़ा सा वैचारिक लाभ है क्योंकि SQL को एक बड़े कार्टेशियन के रूप में एक फ़िल्टरिंग ऑपरेशन के बाद उपयोग की जाने वाली सभी तालिकाओं में शामिल करना आसान है - एक मानसिक तकनीक जो उपयोगी हो सकती है SQL क्वेरी क्या कर रही है, इसे समझने के लिए। हालाँकि मैंने कुछ साल पहले फैसला किया था कि मुझे समय के साथ आगे बढ़ने की जरूरत है और अपेक्षाकृत कम समायोजन अवधि के बाद अब मैं इसे दृढ़ता से पसंद करता हूं - मुख्यतः ऊपर दिए गए पहले कारण के कारण। एएनएसआई-92 सिंटैक्स से अलग होने या विकल्प का उपयोग न करने की एकमात्र जगह प्राकृतिक जोड़ है जो परोक्ष रूप से खतरनाक हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वर्ण लंबाई में 900 बाइट अनुक्रमणिका आकार सीमा

  2. SQL सर्वर में डेटाबेस में सभी तालिकाओं के लिए कॉलम विवरण जोड़ें कैसे उत्पन्न करें - SQL सर्वर / टी-एसक्यूएल ट्यूटोरियल भाग 49

  3. आप SQL सर्वर में हाँ/नहीं बूलियन फ़ील्ड कैसे बनाते हैं?

  4. sql कथनों में वर्ग कोष्ठक [] का क्या उपयोग है?

  5. SQL सर्वर में 'डेटाटाइमऑफ़सेट' संग्रहण आकार को समझना