목차

Materialized View

정의

  1. Materialized View(M-View) 는 말 그대로 View입니다.
  2. 일반 View 논리적인 테이블이고, M-View는 물리적으로 존재하는 테이블(Data가 일정공간 차지)입니다.
  3. M-View는 결과를 뽑아내는 쿼리가 너무나 빈번히 사용될 경우, Query 실행시간의 수행속도 향상을 위하여,
    여러가지 Aggregate View를 두어 미리 비용이 많이 드는 조인이나 Aggregate Operation을 처리하여야 하는 SQL의 결과를
    데이타베이스의 테이블로 저장하여 그 테이블을 조회하도록 하는 방법입니다.
  4. 대용량의 데이타를 SUM,MIN,MAX,AVG,COUNT(*) 등의 명령어를 사용해 너무나도 자주 조회하는 Query의 수행속도를 향상시키기 위해서
    Query의 결과를 새로운 테이블로 생성해 놓는 방법이다.
  5. 자주 사용되는 View의 결과를 디스크에 저장해서 Query 속도를 향상시키는 개념입니다.

특징

  1. M-View를 만들어두면 Query 수행속도를 증가시킬 수 있습니다.
  2. SQL 응용프로그램에서 M-View 사용시 프로그램에 영향을 끼치지 않고 언제든지 생성/제거가 가능합니다.
  3. M-View는 실행결과 행과 뷰 정의 모두 저장이 되고, 실행결과 행으로 만들어진 테이블은 일정공간을 차지합니다.
  4. M-View 관련 기초테이블을 변경하면, M-View로 생성된 Summary 테이블도 변경되어 집니다.

Materialized View와 일반 View의 차이

비교하기 일반 View M-View Table
결과값의 물리적 존재유무 존재안함 존재함 존재함
SELECT * FROM USER_SEGMENTS 조회되지 않음 조회됨 조회됨
조회속도 쿼리정보가 Dictionary에 저장되어 있고
사용될때 그 SQL이 다시 실행되므로
M-View 보다 조회속도가 느리다
M-View 생성시
Query로 물리적인 결과 데이타가 생성되기 때문에
조회속도가 빠르다
M-View와 같음

Materialized View PARAMETER

OPTIMIZER_MODE M-View를 사용하기 위해서 Cost-Based Optimizer 이어야 하므로
ALL_ROWS, CHOOSE, FIRST_ROWS 중 하나를 사용합니다.
CHOOSE 인 상태에서는 모든 테이블을 ANALYZE 시켜 줘야 합니다
QUERY_REWRITE_ENABLED Query Rewrite 사용을 위해서는 TRUE로 설정합니다.
QUERY_REWRITE_INTEGRITY 오라클이 Query Rewrite의 정확성을 제어하는 파라메터로,
STALE_TOLERATED, TRUSTED, ENFORCE로 지정할 수 있습니다.
COMPATIBLE 사용할 수 있는 오라클 함수들의 Compatibility를 결정하는 값입니다.

QUERY_REWRITE_INTEGRITY

STALE_TOLERATED 사용되어진 기초테이블과 Consistent 하지않는 View를 이용한 Query Rewrite를 허용합니다
TRUSTED Optimizer에서 M-View의 데이터가 정확하도고 간주하고 질의를 수행합니다.
Integrity를 확인하지 않습니다.
ENFORCED QUERY_REWRITE_INTEGRITY의 기본값으로
사용자가 Integrity Constraint를 확인하여야 합니다.

Materialized View 생성

Query Rewrite(질의 재작성)

Query Rewrite 정의

Query Rewrite 예제

Materialized View 수동 Refresh 시키기

http://jinhwan.net/zbxe/7075