sql >> Databáze >  >> RDS >> Oracle

Oracle – Jak vytvořit materializovaný pohled pomocí FAST REFRESH a JOINS

Pro začátek z Příručky Oracle Database Data Warehousing:

Omezení rychlého obnovení u materializovaných zobrazení pouze s připojením

...

  • Řádky všech tabulek v seznamu FROM se musí objevit v seznamu SELECT dotazu.

To znamená, že váš výpis bude muset vypadat nějak takto:

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

Dalším klíčovým aspektem, který je třeba poznamenat, je, že vaše protokoly materializovaných zobrazení musí být vytvořeny jako with rowid .

Níže je scénář funkčního testu:

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. ZKONTROLUJTE Omezení na serveru SQL Server

  2. RDBMS vs NoSQL

  3. Nesprávný soubor klíče MySQL pro tabulku tmp při vytváření více spojení

  4. Metoda shromažďování:Procedura EXTEND v databázi Oracle