2009-11-23 10 views
9

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

कभी-कभी, मुझे बैक-तिथियां मिलती हैं। मुझे पता है कि अगर वे टेबल बनाए रखते हैं तो वे क्या हैं और कैसे निपटें, लेकिन मैं इसे "व्यू" रखना चाहता हूं। एक पूर्ण ताज़ा करने में लगभग 30 मिनट लगेंगे, लेकिन किसी भी दी गई तारीख के लिए केवल 25 सेकंड लगते हैं।

क्या मैं निर्दिष्ट कर सकता हूं कि भौतिक दृश्य का केवल एक हिस्सा अपडेट किया जाना चाहिए (यानी प्रभावित तिथियां)?

क्या मुझे दृश्य को स्क्रैप करना है और उस तालिका में किसी दिए गए दिनांक को पॉप्युलेट या रीफ्रेश करने के लिए एक तालिका और प्रक्रिया का उपयोग करना है?

उत्तर

2

इस प्रश्न के उत्तर की कमी से अधिक पढ़ने और निर्णय लेने के बाद, मैं इस निष्कर्ष पर आया कि भौतिक दृश्य के एक विभाजन को रीफ्रेश करना संभव नहीं है।

यदि आप एक वाक्यविन्यास उदाहरण दे सकते हैं जो अन्यथा साबित होता है, तो मैं खुशी से आपके उत्तर को स्वीकार कर दूंगा।

दूसरों को जो इस प्रश्न को भविष्य में उपयोगी पा सकते हैं: आप यह भी जानना चाहेंगे कि ओरेकल 10 जी में, विभाजन को रीफ्रेश करना (या कोई भी अवलोकन) ओरेकल को DELETE जारी करने का कारण बनता है, इसके बाद INSERT।

इस यदि आप प्रदर्शन की समस्याओं (मेरे जैसे) दे रहा है, वहाँ का उपयोग करने के एक विकल्प है atomic_refresh => झूठी है, जो TRUNCATE जाएगा, फिर सम्मिलित करें/+ संलग्न/

+0

डाउनवोट क्यों? – Galghamon

1

आप सामान्य टेबल के साथ भौतिक दृश्यों को विभाजित कर सकते हैं। तिथि के अनुसार अपनी साक्षात्कार को विभाजित करें, और फिर आप केवल आवश्यक विभाजन को रीफ्रेश कर सकते हैं।

+2

बस ध्यान में रखना है कि विभाजन एंटरप्राइज़ संस्करण लाइसेंस के लिए एक शुल्क योग्य अतिरिक्त है। तो सुनिश्चित करें कि आपने उत्पादन में जाने से पहले इसे लाइसेंस प्राप्त किया है। – APC

+1

क्या आप विभाजन परिवर्तन ट्रैकिंग का जिक्र कर रहे हैं? यह एक लंबे शॉट की तरह लगता है कि ओपी का लाभ उठाने में सक्षम होगा अगर एमवी क्वेरी उतनी जटिल है जितनी कहा गया है। –

+0

ठीक है, लेकिन मैं वास्तव में केवल एक विभाजन को रीफ्रेश कैसे करूं? मुझे इस के किसी वाक्यविन्यास उदाहरण नहीं मिल रहे हैं ... – Galghamon

2

मैं एक ताज़ा करने के लिए सक्षम किया गया है विभाजन परिवर्तन ट्रैकिंग के साथ एक भौतिक दृश्य का एकल विभाजन।

ऐसा लगता है कि दृश्य ROWID विकल्प के साथ रेफ्रेश फास्ट के साथ बनाया गया है और DBMS_MVIEW.REFRESH को 'पी' विधि कहा जाता है।

9

के रूप में जवाब 3. में आप एक सामान्य mv की ताज़ा (नीचे table_refreshed) बस कर सकता है और यानी

ALTER TABLE all_partitions 
    EXCHANGE PARTITION to_calculate 
    WITH TABLE table_refreshed 
    WITHOUT VALIDATION 
    UPDATE GLOBAL INDEXES; 

तरह विनिमय कीवर्ड का उपयोग की तुलना में विभाजन दिनांक के आधार पर संबंध

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