मैं एक जटिल Oracle SQL क्वेरी लिखा है और समझाने योजना आँकड़े इस तरह दिखेगा देता है: लागत: 209,201 बाइट्स: 187,944,150 प्रमुखता: 409.675ओरेकल योजना की व्याख्या: प्रमुखता एक बड़ी संख्या देता है लेकिन क्वेरी कोई रिकॉर्ड
अब डीबीए क्वेरी देखते और आँकड़े इस तरह दिखेगा: लागत: 42,996 बाइट्स: 89,874,138 प्रमुखता: 209.226
मेरा पहला सवाल है, यदि संख्या कम कर रहे हैं, यह स्वतः ही बेहतर प्रदर्शन मतलब है? कौन सा नंबर सबसे अधिक मूल्यवान है? लागत/कार्डिनिटी/बाइट्स? मेरा दूसरा सवाल यह है: मैं समझता हूं कि कार्डिनलिटी पंक्तियों की संख्या पढ़ी जाती है। लेकिन जब मैं क्वेरी चलाता हूं, तो यह '0' पंक्तियां देता है! मेरी धारणा यह थी कि कार्डिनलिटी को दो प्रश्नों के लिए समान होना चाहिए जो समान परिणाम सेट लौटाए जाने वाले हैं। मुझे लगता है कि गलत है?
कार्डिनेलिटी (बस डालें) पंक्तियों की संख्या ऑप्टिमाइज़र _thinks_ की आवश्यकता होगी; आंकड़ों के स्तर सहित कई कारकों के आधार पर, यह गलत हो सकता है। – Ben
धन्यवाद। क्या आप बीईटीईएस की व्याख्या कर सकते हैं? – Victor
@ कौशिक: प्रलेखन से, 'BYTES' "ऑपरेशन द्वारा उपयोग किए गए बाइट्स की संख्या के क्वेरी ऑप्टिमाइज़ेशन दृष्टिकोण द्वारा अनुमानित है।" लेकिन यह भ्रामक है, यह वास्तव में ऑपरेशन द्वारा बाइट्स * लौटा * की संख्या है। उदाहरण के लिए, यदि आपके पास पूर्ण टेबल स्कैन है, तो यह तालिका में प्रत्येक बाइट पढ़ेगा, लेकिन 'BYTES' किसी भी फ़िल्टर के बाद आकार * का अनुमान है। http://docs.oracle.com/cd/E11882_01/server.112/e16638/ex_plan.htm#r22c1-t12 –