एक प्रोग्रामर एक ही एप्लिकेशन का परीक्षण और तुलना कर रहा है जो समान डेटाबेस संरचना का उपयोग करता है, और एक ही डेटा, केवल दो अलग-अलग डेटाबेस में, एक ओरेकल 8 के साथ और एक ओरेकल 9 के साथ।
ऐप बिना किसी ORDER BY
क्लॉज के एक क्वेरी चलाता है ।
उनका दावा है कि ORDER-BY-less क्वेरी को दोनों डेटाबेस में समान क्रम में पंक्तियों को वापस करना चाहिए।
मैं बताता हूं कि जब तक आप एक आदेश प्रदान नहीं करते हैं तब तक उसी पंक्ति क्रम की कोई वारंटी नहीं है ।
डेटाबेस में समान अनुक्रमित और कुंजियाँ हैं। लेकिन व्याख्या योजना से पता चलता है कि डेटाबेस में से एक में शामिल तालिकाओं में से एक की कुंजी का उपयोग किया जाता है, जबकि दूसरे डेटाबेस में यह दूसरे का उपयोग कर रहा है।
वह जोर देकर कहते हैं कि दो DB एनवायरमेंट समान नहीं हैं, जो इसलिए है क्योंकि उनके पास अलग-अलग आँकड़े, अलग-अलग rdbms इंजन आदि हैं, लेकिन इसलिए नहीं कि मूल डेटाबेस में हर इंडेक्स को दोहराने में मैं असफल रहा।
मैं उससे कहता हूं कि ORDER BY
यदि आदेश वास्तव में महत्वपूर्ण है तो उसे अन्वेषण प्रदान करना चाहिए ।
प्रश्न
इसलिए मैं उसे बेहतर तरीके से समझा सकता हूं:
जब आप अन्वेषण नहीं करते हैं तो क्वेरी किस क्रम में पंक्तियाँ प्रदान करती है, और क्वेरी उसी क्रम में पंक्तियों को क्यों नहीं लौटाती है?