क्या आपने मूल क्वेरी को TOP 1 के साथ चलाने का प्रयास किया था? सबसे अधिक संभावना है कि यह उतना ही धीमा होगा।
कभी-कभी जब ऑप्टिमाइज़र सोचता है कि कुछ बहुत संभव है और थोड़े प्रयास के साथ डेटा का एक विशाल सेट वापस करने जा रहा है (यानी लगभग सभी रिकॉर्ड वापस आने वाले हैं), तो यह ज्यादातर लूप जॉइन को चुनता है क्योंकि इसे केवल पहला और एक प्राप्त करने की आवश्यकता होती है। लूप जॉइन केवल कुछ रिकॉर्ड प्राप्त करने के लिए अच्छा है। जब यह सच नहीं हो जाता है, तो परिणाम प्राप्त करने में हमेशा के लिए और एक दिन लग जाता है।
आपके मामले में, ऐसा लगता है कि यह बहुत दुर्लभ है, इसलिए यह विकल्प बुरी तरह से आहत करता है। इसके बजाय कुछ ऐसा करने का प्रयास करें जैसे SELECT @count = COUNT(*) FROM ...
और फिर यह जांचना कि क्या वह संख्या शून्य नहीं है।