Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल - फास्ट रिफ्रेश और जॉइन के साथ एक भौतिक दृश्य कैसे बनाएं?

आरंभ करने के लिए, 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मुझे रिलेशनल डेटाबेस में एक पंक्ति को हटाना या अक्षम करना चाहिए?

  2. REMAINDER () Oracle में फंक्शन

  3. JDBC कनेक्शन के लिए नेटवर्क टाइमआउट सेट करना

  4. एक प्रतिबद्ध लेनदेन रोलबैक करें

  5. मौजूद है / मौजूद नहीं है:'1 चुनें' बनाम 'फ़ील्ड चुनें'