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
);