डिस्क्लेमर: नीचे दी गई हर चीज केवल व्यक्तिगत है और मेरे व्यक्तिगत अनुभव से सीधे खींची गई है। जो भी अधिक अनुभवजन्य कठोर विश्लेषण करने के लिए महसूस करता है, उसका स्वागत है और अगर मैं नीचे हूं तो वोट देने के लिए आपका स्वागत है। मुझे यह भी पता है कि एसक्यूएल एक घोषणात्मक भाषा है और आपको यह विचार नहीं करना चाहिए कि जब आप इसे लिखते हैं, तो आपका कोड कैसे संसाधित होता है, लेकिन, क्योंकि मैं अपने समय को महत्व देता हूं, मैं करता हूं।
अनंत तार्किक रूप से समतुल्य कथन हैं, लेकिन मैं तीन (ईश) पर विचार करूंगा।
केस 1: एक मानक क्रम में दो तुलनाएँ (मूल्यांकन क्रम निर्धारित)
ए> = मिनबाउंड और ए <= मैक्सबाउंड
केस 2: सिंथेटिक चीनी (मूल्यांकन आदेश लेखक द्वारा नहीं चुना गया है)
एक बेटविन मिनबाउंड और मैक्सबाउंड
केस 3: एक शिक्षित क्रम में दो तुलनाएं (लेखन समय में चुना गया मूल्यांकन क्रम)
ए> = मिनबाउंड और ए <= मैक्सबाउंड
या
ए <= मैक्सबाउंड और ए> = मिनबाउंड
मेरे अनुभव में, केस 1 और केस 2 के प्रदर्शन में कोई सुसंगत या उल्लेखनीय अंतर नहीं है क्योंकि वे डेटासेट अज्ञानी हैं।
हालाँकि, केस 3 निष्पादन समय में बहुत सुधार कर सकता है। विशेष रूप से, अगर आप एक बड़े डेटा सेट के साथ काम कर रहे हैं और ऐसा कुछ अनुमानी ज्ञान है के लिए कि क्या बारे में एक अधिक होने की संभावना है से अधिक होना MaxBound या की तुलना में कम MinBound आप प्रकरण 3 का उपयोग और तुलना आदेश देने से निष्पादन समय काफ़ी सुधार कर सकते हैं तदनुसार।
मेरे पास एक उपयोग मामला एक विशिष्ट अंतराल के भीतर रिकॉर्ड के लिए गैर-अनुक्रमित तारीखों के साथ एक बड़े ऐतिहासिक डेटासेट को क्वेरी कर रहा है। क्वेरी लिखते समय, मुझे इस बात का अच्छा अंदाजा होगा कि निर्दिष्ट अंतराल से अधिक डेटा मौजूद है या नहीं और निर्दिष्ट अंतराल के बाद ही मेरी तुलना कर सकते हैं। मैंने डेटासेट के आकार, क्वेरी की जटिलता, और पहली तुलना द्वारा रिकॉर्ड किए गए रिकॉर्ड की मात्रा के आधार पर निष्पादन समय में आधे से अधिक कटौती की है।