2009-09-25 17 views
5

मैं ओरेकल के बारे में बात कर रहा हूं। मेरे पास कुछ भौतिक विचार हैं, और वे समय-समय पर अपडेट होते हैं (यह निर्धारित समय के साथ किया जाता है)। अंतिम रीफ्रेश तिथि जानना आसान है - बस USER_MVIEW_REFRESH_TIMES क्वेरी करें। और क्या यह जानने का कोई तरीका है कि वर्तमान क्षण में कुछ विचार अपडेट किए जा रहे हैं या नहीं?कैसे पता चलेगा कि सामग्री दृश्य अपडेट चल रहा है या नहीं?

उत्तर

4

आप अप्रत्यक्ष रूप से देख सकते हैं अगर एक materialized दृश्य देख अगर एक प्रक्रिया उस पर ताले प्राप्त है करके रीफ्रेश किया जा रहा है: एक materialized दृश्य केवल संशोधित किया जाना चाहिए जब ताजा कर (सिवाय के लिए अपडेट दो तरह से प्रतिकृति के लिए इस्तेमाल किया विचारों materialized)।

इस क्वेरी पंक्तियों को वापस करना चाहिए तभी होता है जब आपके materialized दृश्य ताज़ा किया जा रहा है:

SELECT sid 
    FROM v$lock 
WHERE type = 'TX' 
    AND id1 = (SELECT object_id 
       FROM all_objects 
       WHERE owner = :owner 
       AND object_name = :object_name) 
4

materialized विचारों के साथ "एक समय पर ताज़ा करने परिभाषित कर रहे हैं कि ... के साथ ... अगले स्टार्ट ... "उनके डीडीएल के हिस्से के रूप में डीबीएमएस_जेओबी नियंत्रण के तहत निष्पादित किया जाएगा। यदि इन एमवी की रीफ्रेश प्रगति पर है, तो आप संबंधित नौकरी और/या DBA_JOBS_RUNNING में एक पंक्ति के लिए USER_JOBS (या DBA_JOBS) दृश्य में THIS_DATE और THIS_SEC के मान देखेंगे।

यदि आपने एमवी को मांग पर ताज़ा करने के लिए परिभाषित किया है और बाहरी रूप से रीफ्रेश लॉन्च कर रहे हैं तो विन्सेंट का जवाब राज्य को निर्धारित करने का एक तरीका है।

+0

प्रतिक्रिया के लिए धन्यवाद। लेकिन बाहरी जावा कार्य के साथ विचार अपडेट किए जाते हैं। –

5

आप की कोशिश कर सकते:

SELECT CURRMVOWNER, CURRMVNAME FROM V$MVREFRESH

अभी ताज़ा विचारों की सूची प्राप्त करने।

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