2011-06-30 8 views
23

के बजाय INNER -LOOP- JOIN का उपयोग कब करना चाहिए आज मैंने SQL सर्वर में INNER LOOP JOIN नामक एक चीज़ के बारे में सीखा।मुझे INNER JOIN

इसका क्या अर्थ है? (Google मदद नहीं कर रहा है .. या मुझे कहना चाहिए ... इसके बारे में ब्लॉग पोस्ट थोड़ा सा हैं .. तकनीकी और मेरे दिमाग उड़ा रहे हैं)।

इसके अलावा, कुछ सामान्य परिदृश्य क्या हैं जो मानक INNER JOIN पर INNER LOOP JOIN का उपयोग करना एक अच्छा विचार होगा?

उत्तर

21

लूप | हश | MERGE संकेतों में शामिल हों निर्दिष्ट करता है कि क्वेरी में शामिल होने से लूपिंग, हैशिंग या विलय का उपयोग करना चाहिए। लूप का उपयोग करना | हश | मेर्ज जॉइन दो टेबल के बीच एक विशेष जुड़ाव लागू करता है। लूप को राइट या पूर्ण के साथ एक प्रकार के प्रकार के साथ निर्दिष्ट नहीं किया जा सकता है

आपको हमेशा इनर जॉइन का उपयोग करना चाहिए। क्वेरी ऑप्टिमाइज़र को गीलेर का फैसला करने दें, यह लूप, मेर्ज या हश में शामिल होना चाहता है। आप पाएंगे कि लगभग सभी मामलों में अनुकूलक बेहतर निर्णय लेगा। कौन सा इस्तेमाल किया जाएगा और मेरी प्रस्तुति http://sqlbits.com/Sessions/Event4/Understanding_Graphical_Execution_Plans से कब मिल सकता है।

+0

उद्धरण "क्वेरी ऑप्टिमाइज़र का निर्णय लेने दें (एसआईसी)" .. यह कैसे (मूल रूप से) तय किया गया है? आंकड़ों के माध्यम से? –

+1

अलग-अलग प्रकार के प्रकार अलग-अलग क्वेरी अर्थशास्त्र के लिए अनुकूलित किए जाते हैं, और हां, ये ज्यादातर आंकड़े/कार्डिनिटी पर आधारित होते हैं, लेकिन अन्य कारकों जैसे कि जुड़ने का एक पक्ष दूसरी तरफ से बड़ा होता है, चाहे प्रत्येक तरफ इनपुट शामिल होने का क्रमबद्ध किया गया है, आदि। मैं दूसरों के साथ हूं ... यदि इस बारे में ब्लॉग पोस्ट आपके दिमाग को उड़ा रहे हैं, तो आप ऑप्टिमाइज़र को तब तक तय करने से बहुत बेहतर हैं जब तक कि आप शामिल होने के प्रकारों के बीच मतभेदों को महारत हासिल नहीं कर लेते * और * महसूस करें कि आप अनुकूलक से बेहतर हैं। –

+0

@ शुद्ध। क्रोन। तुम सही हो । यद्यपि निष्कर्ष निकाला मुझे ज्ञात नहीं है, मुझे पता है कि यह रेखांकित तालिकाओं और इंडेक्स के आंकड़ों का एक कार्य है, जिस तरह से फ़ाइल समूह को रेखांकित वस्तुओं के लिए बनाया गया है, सर्वर के कोर (MAXDOP) और कई अन्य कारक नहीं हैं। यदि आप गहरी खुदाई करना चाहते हैं तो मैं आपको कॉनर कनिंघम के ब्लॉग को पढ़ने का सुझाव देता हूं जो एमएस एसक्यूएल कोर के प्रिंसिपल आर्किटेक्ट हैं। – Ash

8

आप जो रेफर कर रहे हैं वह join hint है। अन्य संकेतों की तरह, संकेतों में शामिल होना केवल अंतिम उपाय के रूप में निर्दिष्ट किया जाना चाहिए क्योंकि अधिकांश समय SQL सर्वर सही एल्गोरिदम चुनता है। इसमें से कुछ को समझाने के लिए एक अच्छा लेख this है।

संबंधित मुद्दे