본문 바로가기

DB(SQL)

[DB] Materialized View (구체화 뷰/ 물리적 뷰)

반응형

0. Materialized View(MView) 란

A pre-computed table comprising aggregated or joined data from fact and possibly dimension tables. Also known as a summary or aggregate table.

원천 테이블이나 조인된 테이블에서 집계되거나 결합된 데이터로 구성된 미리 계산된 테이블입니다.

요약 또는 집계 테이블이라고도 합니다.

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 설명 보러가기

 

참조

 

 

반응형

'DB(SQL)' 카테고리의 다른 글

[DB] 책  (0) 2022.05.12
[공부해야할것] Database 단편화 (feat. DB 서버 성능저하)  (0) 2022.05.02
[DB] view (view/MView/snapshot)  (0) 2021.10.06
[DB] 문자열 연결 / 이어붙이기  (0) 2021.09.17
[DB] 1701 Error constraint  (0) 2021.09.01