आरंभ करने के लिए, Oracle डेटाबेस डेटा वेयरहाउसिंग गाइड से:
<ब्लॉकक्वॉट>केवल जॉइन के साथ भौतिक दृश्यों पर फ़ास्ट रीफ़्रेश पर प्रतिबंध
...
- FROM सूची में सभी तालिकाओं की पंक्तियाँ क्वेरी की चयन सूची में दिखाई देनी चाहिए।
इसका मतलब है कि आपके बयान को कुछ इस तरह दिखना होगा:
CREATE MATERIALIZED VIEW MV_Test
NOLOGGING
CACHE
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS
SELECT V.*, P.*, V.ROWID as V_ROWID, P.ROWID as P_ROWID
FROM TPM_PROJECTVERSION V,
TPM_PROJECT P
WHERE P.PROJECTID = V.PROJECTID
ध्यान देने योग्य एक अन्य महत्वपूर्ण पहलू यह है कि आपके भौतिक दृश्य लॉग को with rowid
. के रूप में बनाया जाना चाहिए ।
नीचे एक कार्यात्मक परीक्षण परिदृश्य है:
CREATE TABLE foo(foo NUMBER, CONSTRAINT foo_pk PRIMARY KEY(foo));
CREATE MATERIALIZED VIEW LOG ON foo WITH ROWID;
CREATE TABLE bar(foo NUMBER, bar NUMBER, CONSTRAINT bar_pk PRIMARY KEY(foo, bar));
CREATE MATERIALIZED VIEW LOG ON bar WITH ROWID;
CREATE MATERIALIZED VIEW foo_bar
NOLOGGING
CACHE
BUILD IMMEDIATE
REFRESH FAST ON COMMIT AS SELECT foo.foo,
bar.bar,
foo.ROWID AS foo_rowid,
bar.ROWID AS bar_rowid
FROM foo, bar
WHERE foo.foo = bar.foo;