शायद कोई मुझे यह समझा सकता है, लेकिन ओरेकल से डेटा टेबल से पूछताछ करते समय, जहां एक कुंजी के लिए एकाधिक रिकॉर्ड मौजूद होते हैं (ग्राहक आईडी कहें) उस ग्राहक के लिए पहले जो रिकॉर्ड दिखाई देता है, वह भिन्न हो सकता है यदि लेनदेन प्रकार जैसे वैकल्पिक क्षेत्र के अनुसार आदेश लागू करने के लिए कोई आदेश "आदेश द्वारा" कथन नहीं है। तो एक ही टेबल पर एक ही क्वेरी चलाने से 10 मिनट पहले की तुलना में एक अलग रिकॉर्ड ऑर्डरिंग मिल सकती है।ओरेकल एसक्यूएल मनमाने ढंग से फैशन में पंक्तियों को वापस करता है जब कोई "ऑर्डर बाय" क्लॉज का उपयोग नहीं किया जाता है
जैसे, एक रन उत्पन्न हो सकते हैं:
Cust_ID, TRANSACTION_TYPE
123 एक
123 बी
जब तक एक "आदेश TRANSACTION_TYPE द्वारा" खंड प्रयोग किया जाता है, ओरेकल मनमाने ढंग से निम्न परिणाम अगले लौट सकते हैं समय क्वेरी चलाया जाता है:
Cust_ID, TRANSACTION_TYPE
123 बी
123 एक
मुझे लगता है कि मैं इस धारणा के तहत था कि ओरेकल में पंक्तियों का डेटाबेस डिफ़ॉल्ट क्रम था जो (शायद) डिस्क माध्यम पर भौतिक क्रम परिलक्षित होता है। दूसरे शब्दों में, एक मनमाना आदेश जो अपरिवर्तनीय है और एक प्रश्न फिर से शुरू होने पर उसी परिणाम की गारंटी देगा।
क्या इसे अनुकूलक के साथ क्या करना है और यह कैसे निर्णय लेता है कि डेटा को सबसे कुशलतापूर्वक पुनर्प्राप्त करने के लिए कहां से किया जाए?
बेशक प्रोग्रामिंग परिप्रेक्ष्य से सबसे अच्छा अभ्यास जो भी आदेश आवश्यक है, को मजबूर करना है, मैं इस व्यवहार से थोड़ा परेशान था।
मैं पता नहीं क्यों, लेकिन यह एक बहुत ही अजीब अवलोकन और विशेष रूप से 'हतोत्साहित' यह का हिस्सा है। :) –
आप * ऑर्डरिंग को मजबूर नहीं कर रहे हैं, आप * इसे * चुन रहे हैं। – egrunin