यह मेरा अनुभव रहा है कि, आपके प्रश्न जितने जटिल होंगे, SQL अनुकूलक उतनी ही कम कुशल योजनाएँ बनाने में सक्षम होगा। यहां आपके पास 16 जॉइन हैं, कुछ या अधिकतर बाहरी जॉइन हैं, आपके पास कम से कम एक सबक्वायरी है ... पर्याप्त इंडेक्स, कार्डिनैलिटीज, व्यू, बाहरी लागू होता है, और कौन जानता है और कोई नहीं, यहां तक कि माइक्रोसॉफ्ट भी नहीं इंजीनियर*, ऐसे रूटीन का पता लगा सकते हैं जो समान रूप से और नियमित रूप से सबसे इष्टतम योजनाएँ उत्पन्न करेंगे।
आपने जो वर्णन किया है, मैंने कई बार अनुभव किया है - एक साधारण चीज़ को एक गन्दी क्वेरी में बदलें और सब कुछ तीव्रता का क्रम है (या, दांतों को पीसता है, धीमा)। मेरे पास यह निर्धारित करने का कोई तरीका नहीं है कि जटिल कब जटिल है, यह किसी भी चीज़ की तुलना में अधिक भावना है। मेरे अंगूठे का सामान्य नियम है, यदि यह बहुत लंबा या बहुत जटिल लगता है, तो जहां आप कर सकते हैं उसे सरल बनाएं--जैसे कि आपका पूर्व-चयनित सिंगल नेस्टेड मान, या क्वेरी के भाग को हमेशा से अलग करना एक छोटे से परिणाम सेट के साथ तेजी से दौड़ें, और इसे पहले चलाएं और परिणामों को एक अस्थायी तालिका में संग्रहीत करें।
(* कृपया ध्यान दें कि यह हल्का व्यंग्य है)