2013-03-07 12 views
5

प्रश्न सरल है। कौन सा क्वेरी तेजी से हो जाएगा:प्रदर्शन अंतर: बनाम चयन का चयन करें न्यूनतम चयन (वैल)

SELECT TOP 1 value FROM table ORDER BY value 

या

SELECT TOP 1 MIN(value) FROM table 

हम यह मान सकते हैं कि हम दो मामलों में, केस 1. कोई सूचकांक और केस 2. मूल्य पर सूचकांक के साथ है।
किसी भी अंतर्दृष्टि की सराहना की जाती है। धन्यवाद!

+6

आपको 'TOP 1'' कॉल करने की आवश्यकता नहीं है क्योंकि 'MIN' पहले से ही एक मान देता है। –

+0

यदि कोई भिन्नता होगी तो यह डीबीएमएस का उपयोग करेगा, ताकि आप जो भी शामिल कर सकें, उसे जोड़ना चाहें। –

+1

दो ओपेरियंस बराबर नहीं हैं, उदाहरण के लिए कॉलम में 'NULL' मान मौजूद हैं 'TOP 1' + 'ऑर्डर '' NULL' और 'MIN' को सबसे छोटा गैर शून्य मान वापस कर देगा। – Magnus

उत्तर

9

मामले में जहां कोई सूचकांक मौजूद है में:

  • मिन (मूल्य) एक भी स्कैन के साथ हे (एन) के समय में लागू किया जाना चाहिए;
  • शीर्ष 1 ... ऑर्डर द्वारा निर्दिष्ट क्रम की वजह से ओ (एन लॉग एन) समय की आवश्यकता होगी (जब तक कि डीबी इंजन इरादा पढ़ने के लिए पर्याप्त स्मार्ट न हो, जिसे मैं उत्पादन कोड में भरोसा करने से नफरत करता हूं)।

जब एक सूचकांक में मौजूद है:

  • दोनों (1) समय केवल हे की आवश्यकता होती है चाहिए, सूचकांक का उपयोग कर।
+0

धन्यवाद। इस तरह का जवाब मैं देख रहा था! – www

+0

मैंने देखा "स्वीकृत" आया - यह हमेशा पर्याप्त धन्यवाद है। –

संबंधित मुद्दे