जैसा कि आप एल्गोरिथम में रुचि रखते हैं, आपका प्रश्न जो उबलता है वह IN
. के बीच का अंतर है और EXISTS
चूंकि आपके दो उदाहरण IN
. के लिए समान बचत हैं एक EXISTS
. में बदल रहा है CHILD
. से हटाने में टेबल।
पिछले कुछ वर्षों में इस अंतर के बारे में काफी कुछ लिखा गया है लेकिन संक्षेप में IN
आमतौर पर उपयोग किया जाता है जहां तुलनित्रों की संख्या कम होती है जबकि EXISTS
बड़ी संख्या में तुलनित्र लौटाने वाली उपश्रेणियों के लिए अधिक कुशल है (विशेषकर यदि उन मानों में बड़ी संख्या में डुप्लिकेट हैं)।
IN
EXISTS
. के दौरान प्रत्येक लौटे हुए तुलनित्र का मूल्यांकन करना होता है पहले मैच का सामना करने पर संतुष्ट होता है।
इसके अपवाद हैं और यदि आप उनके लिए गूगल करते हैं तो आप उन्हें ढूंढ लेंगे लेकिन कुल मिलाकर यह सच प्रतीत होता है।
टॉम कायटे (ओरेकल वीपी) का यहां स्पष्टीकरण के साथ एक बहुत अच्छा जवाब है:http://asktom.oracle.com/pls/asktom/f?p=100:11:2148775836129778::::P11_QUESTION_ID:953229842074
TechRepublic की भी यहाँ अच्छी व्याख्या है:http://www.techrepublic.com/article/oracle-tip-understand-the-difference-between-in-and-exists-in-subqueries/5297080
आशा है कि यह मदद करेगा...