Programming/Oracle

MVIEW(Materialized VIEW)

초록깨비 2008. 12. 3. 20:09
728x90

1. SQL문의 "인스턴스화"
2. 비용이 많이 드는 복잡한 조인에 유용
3. 데이터 요약 및 집계에 유용
4. Materialized View 생성

 

  구문옵션
  

    CREATE MATERIALIZED VIEW   mview_name
      [TABLESPACE ts_name]
      [PARALLEL (DEGREE n)]
      [BUILD ]
      [{ REFRESH
      [ ON COMMIT | ON DEMAND}]
      | NEVER RFRESH } ]
      [ QUERY REWRITE]

      AS SELECT ... FROM ...


. BUILD IMMEDIATE옵션 선택 : CREATE명령이 실행될때 MVIEW가 채워집니다(기본동작)
. BUILD DEFERRED옵션 선택  : 구조를 생성하지만 첫번째 REFRESH가 발생 할 때까지 MVIEW를 채우지 않습니다
. ENABLE / DISABLE QUERY REWRITE :  MVIEW에 대해 QUERY REWRITE이 자동으로 활성화 되게 할지의 여부 결정 
. QUERY REWRITE 를 활용하고자 하는 경우에는 원격 테이블을 조인할수 없슴.
. REFRESH METHOD
    1) COMPLETE : 모두 삭제하고 새로 만듦
    2) FAST         : 변경된 것만 반영 (-> 이렇게 하기 위해서는 CREATE MATEFIALIZED LOG ON EMP 해줘야함)

                        테이블에 삽입되거나 갱신된 새 데이터를 점차 추가하는 방식으로 REFRESH를 수행합니다
    3) FORCE        : FAST시도 후 안되면 COMPLETE한다

                         (빠른 REFRESH를 적용하고 그렇지 못 할 경우에는 FAST REFRESH를 적용)
    4) NEVER        : REFRESH 안함

                          (ORACLE REFRESH 메커니즘이나 프로시저를 통해 MVIEW를 새로 고칠수 없도록 보호)
    5) REFRESH_METHOD in ALL_MVIEWS

 

 

 

 

[ 예제 ] 

 

create materialized view TA_011_MV
refresh fast on demand
enable query rewrite
as
( SELECT SALE_YYMM, 
            BRAND,  
           SUM(SALE_QTY) SALE_QTY 
   FROM TA_010
  GROUP BY SALE_YYMM, 
                 BRAND
);

728x90