2012-01-25 6 views
5

कहें कि आपके पास दो ओरेकल डेटाबेस, डीबी_ए और डीबीबीआई हैं। एक materialized दृश्य लॉग साथ DB_A में tab1 नामक एक टेबल है, और DB_B में SNAP_TAB1 नाम के एक materialized दृश्यक्या भौतिक दृश्य द्वारा किए गए परिवर्तनों को पूछने का कोई तरीका है ओरेकल में तेज़ी से ताज़ा करें?

CREATE SNAPSHOT SNAP_TAB1 
REFRESH FAST 
AS SELECT * FROM [email protected]_A; 

वहाँ प्रत्येक कॉल के बाद SNAP_TAB1 में किए गए परिवर्तनों DB_B में क्वेरी करने के लिए तेजी से करने के लिए एक रास्ता है के साथ बनाया भौतिक दृश्य ताज़ा करें?

DBMS_SNAPSHOT.REFRESH('SNAP_TAB1', 'F'); 

DB_A में, ताज़ा करने से पहले, आप materialized दृश्य लॉग मेज, MLOG $ _TAB1 क्वेरी कर सकता है, यह देखने के लिए कौन-सी पंक्तियां tab1 में बदल दिया गया है। मैं प्रत्येक रीफ्रेश के बाद डीबीबी में पूछताछ करने का एक तरीका ढूंढ रहा हूं, जो पंक्तियों को SNAP_TAB1 में रीफ्रेश किया गया है।

धन्यवाद!

आप तालिका SNAP_TAB1 में एक स्तंभ जोड़ सकते हैं:

उत्तर

1

मैं पहले से बनाए गए टेबल के साथ काम नीचे लाइनों में सोचते हैं।

आवेषण के लिए आप इसे सम्मिलित करने के लिए प्रत्येक प्रविष्टि के लिए default sysdate => पर डाल सकते हैं।

अपडेट के लिए आप एक ट्रिगर का उपयोग कर सकते हैं। चूंकि कॉलम मटेरियलाइज्ड व्यू में शामिल नहीं है, इसलिए ट्रिगर के साथ कॉलम अपडेट करना कोई समस्या नहीं होगी।

शायद बेहतर, ट्रिगर के साथ आप एक अद्वितीय आईडी का उपयोग कर सकते हैं कि स्तंभ, हर नई ताज़ा से पहले वृद्धि में स्टोर करने के लिए। (विशिष्ट आईडी प्राप्त विभिन्न aproaches हो सकता है।)

जाहिर है, आप कर सकते हैं ' टी इस विचार के साथ हटा देता है।

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

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