किस प्रकार का जुड़ाव किया जाता है? मुझे लगता है कि यह पूर्ण बाहरी जुड़ाव है, क्या मैं सही हूँ?
नहीं, यह एक नियमित बाहरी जुड़ाव है। क्वेरी को यह जानने की आवश्यकता है कि लक्ष्य तालिका में पंक्तियाँ कब हैं जो स्रोत तालिका में भी हैं और जब स्रोत तालिका में ऐसे रिकॉर्ड हैं जो लक्ष्य तालिका में नहीं हैं। चूंकि क्वेरी को उन पंक्तियों का जवाब देने की आवश्यकता नहीं है जो लक्ष्य तालिका में हैं लेकिन स्रोत तालिका में नहीं हैं, इसलिए दोनों तरीकों से जाने के लिए बाहरी जुड़ाव की आवश्यकता नहीं है।
हालांकि, यदि कोई not matched
. नहीं है, तो बाहरी जुड़ाव नहीं किया जाएगा खंड (जो पूरी तरह से मान्य है)। ऑप्टिमाइज़र यह जानने के लिए पर्याप्त स्मार्ट है कि उस स्थिति में, एक आंतरिक जुड़ाव पर्याप्त है।
WHEN MATCHED भाग के बारे में:क्या होता है जब t से एक पंक्ति s से कई पंक्तियों से मेल खाती है?
<स्ट्राइक>जब कई मैच होते हैं, तो प्रत्येक मैच के लिए अपडेट किया जाता है। इसका मतलब है कि जो भी अपडेट आखिरी बार आएगा वह कमिट में लिखा होगा। किसी आदेश को निर्देशित करने का कोई तरीका नहीं है, इसलिए इस मामले में अद्यतन का स्रोत प्रभावी रूप से यादृच्छिक है (मैचों के सेट से)।
जैसा कि @ विन्सेंट मालग्रेट ने बताया, यह गलत था। ऐसा लगता है कि Oracle एक "ORA-40926:स्रोत तालिका में पंक्तियों का एक स्थिर सेट प्राप्त करने में असमर्थ" त्रुटि उत्पन्न करेगा यदि कई मैच हैं।
<ब्लॉककोट>जब मेल न खाने वाले भाग के संबंध में मेरा मानना है कि इसका अर्थ है "जब s में एक पंक्ति का t में कोई पत्राचार नहीं है"। क्या मैं सही हूँ?
यह सही है।