2015-09-11 3 views
5

मैं दृश्य के चयन क्वेरी के अंदर फ़ंक्शन को कॉल कर रहा हूं। देखें तालिका से रिकॉर्ड पढ़ रहा है जिसमें लगभग 1 मिलियन रिकॉर्ड हैं। जब मैं फ़ंक्शन में RESULT_CACHE कुंजी शब्द लिख रहा हूं, तो मुझे सेकंड के अंश में आउटपुट मिल रहा है। मुझे संदेह है कि जब किसी कॉलम का मूल्य बदल जाता है जिसे देखने के अंदर उपयोग किया जाता है, तो क्या वह नया मान मान लेगा?क्या RESULT_CACHE कीवर्ड ओरेकल में फ़ंक्शन से अद्यतन डेटा लौटाएगा?

+1

आप कोड तस्वीर साझा कर सकते हैं कर सकते हैं? –

+1

कृपया कोड नमूना प्रदान करें। इसलिए हम आपकी मदद कर सकते हैं। – Hardy

+0

कुछ परिस्थितियों में फ़ंक्शन परिणाम किसी भी SQL कथन में निष्पादन के दायरे में कैश किया जाएगा, भले ही यह निर्धारक है और इनपुट पैरामीटर में परिवर्तन पर, RESULT_CACHE सेटिंग के बावजूद। क्या आप वाकई RESULT_CACHE की आवश्यकता है? –

उत्तर

4

मेरे ज्ञान के अनुसार RESULT_CACHE आपको ओरेकल विशेष मेमोरी परिणाम कैश से डेटा प्रदान करेगा।

यदि आप अपडेट किए गए परिणाम प्राप्त करना चाहते हैं तो आप RESULT_CACHE RELIES_ON (तालिका नाम) का उपयोग कर सकते हैं।

लेकिन यदि आपका डीबी संस्करण 11.2 या उच्चतम है तो क्लॉज पर निर्भरता अनावश्यक है क्योंकि यह स्वचालित रूप से निर्भरताओं को ट्रैक करती है और आवश्यक होने पर कैश किए गए परिणामों को अमान्य करती है।

आप विवरण में here या here से उल्लेख

+3

relies_on खंड ओरेकल में पदावनत किया गया है 11.2 –

+0

वास्तव में, 'RELIES_ON' * है ओरेकल 11.2+ –

+0

@Jeffrey, में नजरअंदाज * यू बेहतर समझ के लिए लिंक प्रदान करें कर सकते हैं। – chetan

1

हाँ मुझे लगता है कि यह आपके डेटा को रीफ्रेश करेगा। लेकिन डेटा अपडेट करने के बाद पहली बार निष्पादित करने में समय लगेगा।

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