मैटेरियलाइज़्ड व्यू निर्माण कथन में SELECT क्लॉज उस डेटा को दर्शाता है जिसे मैटेरियलाइज़्ड व्यू में शामिल किया जाना है। कुछ प्रतिबंध हैं जो सीमित करते हैं कि क्या परिभाषित किया जा सकता है और कई टेबल को एक साथ जोड़ा जा सकता है। व्यू, इंलाइन व्यू (SELECT कथन के FROM क्लॉज में सबक्वेरी), सबक्वेरी, और मैटेरियलाइज़्ड व्यू जैसे कई तत्व हैं जिन्हें SELECT क्लॉज में जोड़ा या शामिल किया जा सकता है।
मैटेरियलाइज़्ड व्यू के विभिन्न प्रकार निम्नलिखित हैं:
एग्रीगेट्स के साथ मैटेरियलाइज़्ड व्यू (Materialized Views with Aggregates)
डेटा वेयरहाउस में, मैटेरियलाइज़्ड व्यू में आमतौर पर एग्रीगेट शामिल होते हैं। तेज रिफ्रेश के लिए संभव होने के लिए, SELECT सूची में सभी GROUP BY कॉलम शामिल होने चाहिए (यदि मौजूद हैं), और कुछ एग्रीगेटेड कॉलम पर COUNT(*) और COUNT(कॉलम) होना चाहिए।
क्वेरी में संदर्भित सभी टेबल पर मैटेरियलाइज़्ड व्यू लॉग मौजूद होने चाहिए जो मैटेरियलाइज़्ड व्यू को दर्शाता है। वास्तविक एग्रीगेट फंक्शन SUM, COUNT(x), COUNT(*), AVG, VARIANCE, STDDEV, MIN, और MAX हैं, और एग्रीगेट की जाने वाली अभिव्यक्ति कोई SQL मूल्य अभिव्यक्ति हो सकती है।
केवल जॉइन वाले मैटेरियलाइज़्ड व्यू (Materialized Views containing only Joins)
कुछ मैटेरियलाइज़्ड व्यू में केवल जॉइन होते हैं और कोई एग्रीगेट नहीं होता जहां एक मैटेरियलाइज़्ड व्यू उत्पन्न होता है जो सेल्स टेबल को टाइम्स और कस्टमर टेबल से जोड़ता है। इस प्रकार के मैटेरियलाइज़्ड व्यू बनाने का लाभ यह है कि महंगे जॉइन पूर्व-गणना किए जाएंगे।
केवल जॉइन वाले मैटेरियलाइज़्ड व्यू के लिए तेज रिफ्रेश बेस टेबल पर किसी भी प्रकार के DML (डायरेक्ट-पाथ या पारंपरिक INSERT, UPDATE, या DELETE) के बाद लागू होता है। केवल जॉइन वाले मैटेरियलाइज़्ड व्यू को ON COMMIT या ON DEMAND रिफ्रेश करने के लिए दर्शाया जा सकता है। यदि यह ON COMMIT है, तो रिफ्रेश उस लेनदेन के कमिट समय पर लागू होता है जो मैटेरियलाइज़्ड व्यू की विश्लेषण टेबल पर DML करता है।
यदि मैटेरियलाइज़्ड व्यू में केवल जॉइन हैं, तो प्रत्येक टेबल के लिए ROWID कॉलम (और FROM सूची में कई बार आने वाली टेबल के प्रत्येक उदाहरण) मैटेरियलाइज़्ड व्यू की SELECT सूची में मौजूद होने चाहिए।
यदि मैटेरियलाइज़्ड व्यू में FROM क्लॉज में रिमोट टेबल हैं, तो FROM क्लॉज में सभी टेबल को उस समान साइट पर रखा जाना चाहिए। इसके अलावा, रिमोट टेबल वाले मैटेरियलाइज़्ड व्यू के लिए ON COMMIT रिफ्रेश प्रदान नहीं किया जाता है। मैटेरियलाइज़्ड व्यू के प्रत्येक डिटेल टेबल के लिए रिमोट साइट पर मैटेरियलाइज़्ड व्यू लॉग मौजूद होने चाहिए और ROWID कॉलम मैटेरियलाइज़्ड व्यू की SELECT सूची में मौजूद होने चाहिए।
नेस्टेड मैटेरियलाइज़्ड व्यू (Nested Materialized Views)
एक नेस्टेड मैटेरियलाइज़्ड व्यू एक मैटेरियलाइज़्ड व्यू है जिसका विवरण किसी अन्य मैटेरियलाइज़्ड व्यू पर स्थित है। एक नेस्टेड मैटेरियलाइज़्ड व्यू डेटाबेस में विभिन्न संबंधों को संदर्भित कर सकता है जिसमें मैटेरियलाइज़्ड व्यू को संदर्भित करना शामिल है।
एक डेटा वेयरहाउस में, आमतौर पर एक सिंगल जॉइन पर कुछ एग्रीगेट व्यू बनाए जा सकते हैं (उदाहरण के लिए, कई आयामों के साथ रोलअप)। इन विशिष्ट मैटेरियलाइज़्ड एग्रीगेट व्यू को बढ़ाने में लंबा समय लग सकता है, क्योंकि बेसिक जॉइन को कई बार लागू करना पड़ता है।