Oracle में Views और Materialized Views में क्या अंतर है?


जवाबों:


356

भौतिक विचार डिस्क आधारित हैं और क्वेरी परिभाषा के आधार पर समय-समय पर अद्यतन किए जाते हैं।

दृश्य केवल आभासी होते हैं और हर बार एक्सेस किए जाने पर क्वेरी परिभाषा चलाते हैं।


54
इसके अलावा, जब आपको डेटा पर प्रदर्शन की आवश्यकता होती है, तो बहुत दूसरे तक अद्यतित होने की आवश्यकता नहीं होती है, तो भौतिक विचार बेहतर होते हैं, लेकिन आपका डेटा मानक दृश्य की तुलना में पुराना होगा। आमतौर पर BI रिपोर्ट भौतिक विचारों से बहुत अधिक लाभ प्राप्त करती है।
मार्थिनस

29
@ मैर्थिनस - यह एक भौतिकवादी दृश्य के मामले में सही है, जो कि REFRESH ON COMMIT है - MV ठीक उसी डेटा को लौटा देगा जो प्रतिबद्ध किया गया है।
जेफरी केम्प

2
DISK का अर्थ क्या है? क्या इसका मतलब तालिका DISK का हिस्सा नहीं है? क्या यह किसी फ़ाइल में संग्रहीत है और DISK पहुँच अधिक तेज़ है जो फ़ाइल तक पहुँच है ....?
कानागावेलु सुगुमार

1
@KanagaveluSugumar हाँ, वास्तविक तालिकाओं को डिस्क पर भी लिखा जाता है।
डैकोरॉट सेप

5
@dacracot धन्यवाद! मुझे लगता है कि आप डिस्क में DB तालिकाओं के अलावा अन्य कहने का मतलब है; यह MVIEW भी सभी जोड़ को हल करके एक तालिका बनाए रखता है। ताकि रनटाइम में सिंगल टेबल एक्सेस पर्याप्त हो; और आम तौर पर सामान्य दृश्य द्वारा की जाने वाली शर्तों में शामिल होने के लिए कई तालिकाओं को क्वेरी करने की आवश्यकता नहीं है। धन्यवाद!
कनागावेलु सुगुमार

333

दृश्य

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

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

भौतिकवादी विचार

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

इसके अलावा, क्योंकि सभी जोड़ भौतिक रूप से देखने के ताज़ा समय में हल हो गए हैं, आप हर बार भौतिकवादी दृश्य से चयन करने के बजाय, एक बार (या जितनी बार आप अपने भौतिक दृश्य को ताज़ा करते हैं) की कीमत चुकाते हैं। इसके अलावा, क्वेरी फिर से लिखने में सक्षम होने के साथ, ओरेकल एक क्वेरी को अनुकूलित कर सकता है जो आपके भौतिकीकृत दृश्य के स्रोत से इस तरह से चयन करता है कि यह आपके भौतिक दृश्य से पढ़ता है। उन स्थितियों में जहां आप समग्र तालिकाओं के रूपों के रूप में या अक्सर निष्पादित प्रश्नों की प्रतियों के रूप में भौतिक विचारों का निर्माण करते हैं, यह आपके अंतिम उपयोगकर्ता एप्लिकेशन के प्रतिक्रिया समय को बहुत तेज कर सकता है। नकारात्मक पक्ष यह है कि डेटा आप दृश्य materialized से वापस मिल ही के रूप में पिछली बार materialized दृश्य ताजा कर दिया गया है के रूप में तारीख करने के लिए है


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

भौतिक विचारों को अक्सर डेटा वेयरहाउसिंग / व्यावसायिक खुफिया अनुप्रयोगों में उपयोग किया जाता है जहां हजारों लाखों पंक्तियों के साथ बड़े तथ्य तालिकाओं को क्वेरी प्रतिक्रिया समय में परिणाम होगा जो एक अनुपयोगी अनुप्रयोग के परिणामस्वरूप होता है।


भौतिकवादी विचार भी स्नैपशॉट अलगाव के समान समय में एक सुसंगत क्षण की गारंटी देने में मदद करते हैं ।


9
विस्तृत विवरण के लिए +1, लेकिन क्वेरी पुनर्लेखन के नकारात्मक पहलू क्या है? यदि क्वेरी फिर से लिखना Oracle को क्वेरी को आगे भी ऑप्टिमाइज़ करने की अनुमति देगा तो हमें हमेशा क्वेरी को फिर से लिखना चाहिए, नहीं?
रोजडी कासिम

6
@Rosdi, उन्होंने कहा कि: "भौतिक दृष्टि से आपको जो डेटा वापस मिलता है, वह केवल अद्यतित होता है क्योंकि पिछली बार भौतिक रूप से देखा गया है"
जेफरी केम्प

49

एक दृश्य अंतर्निहित तालिकाओं से डेटा खींचने के लिए एक क्वेरी का उपयोग करता है।

एक भौतिक दृश्य डिस्क पर एक तालिका है जिसमें क्वेरी का परिणाम सेट होता है।

भौतिक विचारों का उपयोग मुख्य रूप से अनुप्रयोग प्रदर्शन को बढ़ाने के लिए किया जाता है जब यह एक मानक दृश्य का उपयोग करने के लिए उपयुक्त या वांछनीय नहीं है, जिस पर इसे लागू किया जाता है। भौतिक विचारों को नियमित रूप से ट्रिगर के माध्यम से या ON COMMIT REFRESHविकल्प का उपयोग करके अपडेट किया जा सकता है। इसके लिए कुछ अतिरिक्त अनुमतियों की आवश्यकता होती है, लेकिन यह कुछ भी जटिल नहीं है। ON COMMIT REFRESHकम से कम ओरेकल 10 के बाद से जगह में है।


एक "REFRESH ON COMMIT" विकल्प है जिसे भौतिक दृष्टिकोण पर निर्दिष्ट किया जा सकता है
Hybris95

धन्यवाद! मैं जवाब अपडेट कर दूंगा। क्या आप जानते हैं कि यह कार्यक्षमता ओरेकल में कब जोड़ी गई थी?
यिर्मयाह पेश्का

20

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


DISK का अर्थ क्या है? क्या इसका मतलब तालिका DISK का हिस्सा नहीं है? क्या यह किसी फ़ाइल में संग्रहीत है और DISK पहुँच अधिक तेज़ है जो फ़ाइल तक पहुँच है ....?
काणगावेलु सुगुमार

18

भौतिकवादी दृश्य - एक डिस्क पर एक तालिका जिसमें क्वेरी का परिणाम सेट होता है

गैर-मेटरियस व्यू - एक क्वेरी जो अंतर्निहित तालिका से डेटा खींचती है


7

दृश्य: दृश्य केवल एक नामित क्वेरी है। यह कुछ भी संग्रहीत नहीं करता है। जब दृश्य पर कोई क्वेरी होती है, तो वह दृश्य परिभाषा की क्वेरी चलाता है। वास्तविक डेटा तालिका से आता है।

भौतिक विचार: भौतिक रूप से डेटा संग्रहीत करते हैं और समय-समय पर अद्यतन होते रहते हैं। MV की क्वेरी करते समय, यह MV से डेटा देता है।


2

माइक McAllister के सुंदर जवाब पूरी तरह से जोड़ने ...

संकलक द्वारा दृश्य क्वेरी को सरल माना जाने पर परिवर्तनों का पता लगाने वाले डेटाबेस के माध्यम से भौतिक विचार केवल स्वचालित रूप से ताज़ा करने के लिए सेट किए जा सकते हैं । यदि इसे बहुत जटिल माना जाता है, तो यह सेट अप करने में सक्षम नहीं होगा कि स्रोत तालिका में परिवर्तन को ट्रैक करने के लिए अनिवार्य रूप से आंतरिक ट्रिगर क्या हैं जो केवल परिवर्तित तालिका में परिवर्तित पंक्तियों को अद्यतन करते हैं।

जब आप एक भौतिक दृश्य बनाते हैं, तो आप पाएंगे कि ओरेकल एक ही नाम के साथ एक तालिका के रूप में mview और दोनों बनाता है , जो चीजों को भ्रमित कर सकता है।


तालियां जो एक भौतिक दृश्य का समर्थन करती हैं, दृश्य के समान नाम नहीं लेती हैं।
जेफरी केम्प

@ जेफ्रीकम्प, क्या आपको यकीन है? यहां स्वीकार किए गए उत्तर stackoverflow.com/a/33552513 अन्यथा दावा करता है। हालाँकि, हाँ, यह 2010 में अलग हो सकता है जब आपने टिप्पणी की ...
leqid

ऊपर मेरी टिप्पणी पुराने संस्करण (शायद 9i) पर रही होगी। आप सही हैं, एमवी को कम से कम आधुनिक संस्करणों में समान नाम वाली एक तालिका मिलती है।
जेफरी केम्प

1

भौतिक विचार, चुनिंदा क्वेरी द्वारा संचालित डेटा का तार्किक दृश्य है, लेकिन क्वेरी का परिणाम तालिका या डिस्क में संग्रहीत किया जाएगा, क्वेरी की परिभाषा भी डेटाबेस में संग्रहीत होगी।

मैटेरियलाइज्ड व्यू का प्रदर्शन सामान्य व्यू से बेहतर है क्योंकि मैटेरियलाइज्ड व्यू के डेटा को टेबल में स्टोर किया जाएगा और टेबल को इतनी तेजी से इंडेक्स किया जा सकता है कि ज्वाइनिंग के लिए भी तेजी से जुड़ना है, मैटेरियलाइज्ड व्यू के समय पर रिफ्रेश किया जाता है ताकि हर बार फायर की जरूरत न पड़े। देखने के मामले में बयान में शामिल हों।

दृश्य के मामले में अन्य अंतर शामिल हैं हमें हमेशा नवीनतम डेटा मिलता है लेकिन भौतिकीकृत दृश्य के मामले में हमें नवीनतम डेटा प्राप्त करने के लिए दृश्य को ताज़ा करने की आवश्यकता होती है। Materialized view के मामले में हमें एक अतिरिक्त ट्रिगर या कुछ स्वचालित विधि की आवश्यकता होती है ताकि हम MV को ताज़ा रख सकें, डेटाबेस में विचारों के लिए यह आवश्यक नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.