यह डेटाबेस में डेटा को सॉर्ट करने के लिए लगभग निश्चित रूप से अधिक कुशल होगा। डेटाबेस को बड़े डेटा वॉल्यूम से निपटने के लिए डिज़ाइन किया गया है। और डेटाबेस के लिए कई अनुकूलन उपलब्ध हैं जो मध्यम स्तर पर उपलब्ध नहीं होंगे। यदि आप मध्यम स्तर पर एक हाइपर-कुशल सॉर्ट रूटीन लिखने की योजना बनाते हैं जो आपके डेटा के बारे में जानकारी का लाभ उठाता है जो डेटाबेस नहीं करता है (यानी मध्यम स्तर की दर्जनों मशीनों के समूह के लिए डेटा को खेती करना ताकि सॉर्ट कभी डिस्क पर नहीं फैलता है, इस तथ्य का लाभ उठाते हुए कि आपका डेटा अधिकतर एल्गोरिदम चुनने का आदेश दिया जाता है जो आमतौर पर विशेष रूप से कुशल नहीं होता), आप शायद डेटाबेस की सॉर्ट गति को हरा सकते हैं। लेकिन यह दुर्लभ हो जाता है।
क्वेरी के आधार पर, उदाहरण के लिए, डेटाबेस ऑप्टिमाइज़र एक क्वेरी प्लान चुन सकता है जो बिना किसी प्रकार के डेटा को क्रम में लौटाता है। उदाहरण के लिए, डेटाबेस जानता है कि किसी इंडेक्स में डेटा सॉर्ट किया गया है, इसलिए यह पूरे परिणाम सेट को पूरा करने और सॉर्ट किए बिना डेटा को वापस करने के लिए इंडेक्स स्कैन करने का विकल्प चुन सकता है। अगर इसे पूरे नतीजे को पूरा करना पड़ता है, तो इसे केवल उन कॉलमों की आवश्यकता होती है जिन्हें आप सॉर्ट कर रहे हैं और किसी प्रकार की पंक्ति पहचानकर्ता (यानी ओरेकल में एक ROWID) की बजाय डेटा की पूरी पंक्ति को सॉर्ट करने के बजाय एक निष्क्रिय मध्यम स्तरीय कार्यान्वयन की संभावना है । उदाहरण के लिए, यदि आपके पास एक समग्र इंडेक्स है (col1, col2) और आप UPPER (col2), लोअर (col1) को सॉर्ट करने का निर्णय लेते हैं, तो डेटाबेस इंडेक्स से col1 & col2 मानों को पढ़ सकता है, पंक्ति पहचानकर्ताओं को सॉर्ट कर सकता है, और फिर तालिका से डेटा लाने के लिए जाओ। बेशक, डेटाबेस को ऐसा करने की ज़रूरत नहीं है - ऑप्टिमाइज़र खाते से डेटा या विभिन्न इंडेक्स से डेटा लाने की लागत के खिलाफ एक प्रकार की लागत को ध्यान में रखेगा। डेटाबेस अच्छी तरह से निष्कर्ष निकाल सकता है कि सबसे कुशल तरीका तालिका स्कैन करना है, पूरी पंक्ति को स्मृति में पढ़ें, और इसे सॉर्ट करें। यह निष्कर्ष निकाला जा सकता है कि डेटा लाने के लिए इंडेक्स का परिणाम अधिक I/O होता है लेकिन इस तरह की लागत को कम या समाप्त करके इसके लिए बनाता है।
स्रोत
2011-02-23 22:27:28
डेटाबेस यह करता है तो यह लगभग हमेशा तेज है। – rook
आप किस परिमाण का अनुमान लगाएंगे? –
आप इसे स्वयं ही समय दे सकते हैं। यहां कुछ भी ज्यादा आधिकारिक है। –