DB(SQL)
[DB] Materialized View (구체화 뷰/ 물리적 뷰)
24시간초보
2021. 10. 6. 18:39
반응형
0. Materialized View(MView) 란
원천 테이블이나 조인된 테이블에서 집계되거나 결합된 데이터로 구성된 미리 계산된 테이블입니다.
요약 또는 집계 테이블이라고도 합니다.
1. Materialized View 특징?
물리적으로 존재하는 View
Data 저장공간 차지
Oracle8 i 이후 사용 가능 (mysql/mariadb 기능 없음)
합계함수 등을 사용하는 자주 사용하는 쿼리를 구체화 뷰로 많이 만든다. (요약 테이블)
실행 전에 비용이 많이 드는 조인 및 집계 작업을 미리 계산하고 결과를 데이터베이스의 테이블에 저장하여 쿼리 실행 시간을 개선하는 특수한 종류의 집계 보기
1. 생성 (create materialized view)
CREATE MATERIALIZED VIEW VIEW_NAME
BUILD IMMEDIATE[DEFERRED] REFRESH [ FAST | COMPLETE | FORCE | NEVER ]
ENABLE QUERY REWRITE
AS
SELECT 문장;
view refresh option
- [FAST] : 원본 테이블에 변경된 데이터만 구체화 뷰에 갱신한다. FAST REFRESH가 동작하기 위해서는 뷰의 마스터 테이블이 materialized view log 가 있어야 한다.
[COMPLETE] : 원본테이블이 변경되면 전부 갱신한다. - [FORCE] : FAST와 동일한 기능을 한다.
- [NEVER] : 원본테이블이 갱신되어도 뷰에 반영하지 않는다.
QUERY REWRITE option
일반 USER가 작성한 SQL 문이 구체화 된 뷰를 통해 데이터를 검색하는 것이 더 빨리 데이터를 찾을 수 있다고 분석되면 사용자의 SQL문을 구체화 뷰를 통해 검색하게 하는 기능이다.
ENABLE QUERY REWRITE : 사용자가 질의한 SQL을 옵티마이저에게 재작성 할 수 있도록 함. (CBO 기반 옵티마이저를 사용해야 가능)
DISABLE QUERY REWRITE : 사용자가 질의한 SQL을 옵티마이저가 임의로 재작성 할 수 없음
+ (일반적인/논리적) view 설명 보러가기
참조
반응형