구체화 뷰

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기

구체화 뷰(Materialized view), 구체화된 뷰쿼리의 결과를 담고 있는 데이터베이스 오브젝트이다. 원거리에 위치한 데이터의 근거리 사본일 수도 있고, 테이블의 줄이나 열의 하부 집합 또는 Join 결과일 수도 있으며 테이블 데이터 집합에 기반한 요약일 수도 있다. 원거리 테이블에 기반한 데이터를 저장하는 구체화 뷰는 스냅샷으로도 부른다. 스냅샷을 구체화 뷰로 재정의할 수 있다.

개요[편집]

구체화 뷰는 오라클 데이터베이스에 처음 도입된 것으로, 쿼리 다시 쓰기 기능은 버전 8i부터 추가되었다.[1] 사이베이스 SQL 애니웨어[2], 티베로에서도 지원한다. IBM DB2에서는 구체화 쿼리 테이블(materialized query tables)로 부른다. 마이크로소프트 SQL 서버 또한 색인화된 뷰(indexed view)라는 이름의 비슷한 기능이 있다.[3] MySQL은 구체화 뷰를 네이티브로 지원하지는 않지만 트리거나 저장된 프로시저를 사용하거나[4] 오픈 소스 응용 프로그램인 플렉스뷰를 이용하여 일부 작업이 가능하다.[5] PostgreSQL에도 구체화 뷰를 적용할 수 있는데, 버전 9.3부터 이를 네이티브로 지원한다.[6]

기본 문법[편집]

   create MATERIALIZED VIEW [[VIEW_NAME]]
      [TABLESPACE ts_name]
      [PARALLEL {DEGREE n)]
      [BUILD {IMMEDIATE | DEFERRED | ON PREBUILT TABLE}
      [REFRESH {FAST | COMPLETE | FORCE | NEVER | ON COMMIT}]
      [WITH PRIMARY KEY]
      [{ENABLE | DISABLE} QUERY REWRITE
      [USING {INDEX idx_name | NO INDEX}]
   AS
   [[SELECT QUERY]];

[편집]

오라클에서의 구체화 뷰의 예시 문법은 다음과 같다:

 CREATE MATERIALIZED VIEW MV_MY_VIEW
REFRESH FAST START WITH SYSDATE
   NEXT SYSDATE + 1
     AS SELECT * FROM <table_name>;

참조[편집]

  1. Oracle8i Tuning Release 8.1.5. Ecst.csuchico.edu. Retrieved on 2012-02-09.
  2. Materialized Views – Sybase SQL Anywhere. Ianywhere.com. Retrieved on 2012-02-09.
  3. Improving Performance with SQL Server 2005 Indexed Views. Microsoft.com. Retrieved on 2012-02-09.
  4. Implementing materialized views in MySQL. Shinguz.ch (2006-11-06). Retrieved on 2012-02-09.
  5. Flexviews for MySQL – incrementally refreshable materialized views w/ MySQL. Flexviews.sourceforge.net. Retrieved on 2012-02-09.
  6. PostgreSQL: Materialized Views. Wiki.postgresql.org (2010-05-07). Retrieved on 2013-09-25.

외부 링크[편집]