ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Oracle] MView란?
    공부 이야기/ORACLE 2024. 5. 8. 09:04

    * With절 plan에 사용되는 것과 일반적인 View와 다름

    1. 쿼리 결과를 디스크의 별도 테이블 스페이스에서 데이터 파일 형태로 저장하는데 사용자는 MView 데이터를 직접 수정할 수 없고, 원본 테이블의 변경 사항에 따라 자동으로 갱신한다.

    2. 데이터베이스 객체로 관리되기 때문에 데이터 딕셔너리에서 MView를 확인할 수 있다.

    또는 SELECT * FROM USER_SEGMENTS 쿼리로 확인이 가능하다. 일반 VIEW는 조회되지 않는 반면 MVIEW는 조회가 가능하다.

    SQL이 다시 실행되어야 하는 일반 VIEW와는 달리 데이터가 미리 저장되기 때문에 더 빠른 조회가 가능하다.

    3. 쿼리가 재실행되는 경우 사용자에게 미리 저장된 결과를 전달함으로써 쿼리를 여러 차례 재실행하는 데 따르는 성능적인 부담을 줄이기 위해 등장

    4. 주로 집계성 데이터에서 사용되는데, 집계 연산에 대한 부하가 큰 SQL인 경우, Grouping이 완료된 데이터를 미리 저장해놓고 재활용함으로써 재처리 없이 조회에 대한 응답 속도를 높일 수 있다.

    5. 원본 테이블에 대한 집계용 복사본이라고 생각하면 쉽다. Join을 통해 여러 개의 원본 테이블에 대한 복사도 진행할 수 있다.

    6. 명령어는 다음과 같다. 옵션은 아래 기술

    CREATE MATERIALIZED VIEW VIEW_NAME

    BUILD IMMEDIATE[DEFERRED] REFRESH[FAST]

    [COMPLETE]

    [FORCE]

    [NEVER]

    ENABLE QUERY REWRITE

    AS

    -- SELECT 구문

    7. 빌드 생성시 다음 두 가지 모드를 선택할 수 있다.

    BUILD IMMEDIATE MVIEW를 생성할 때 데이터를 채우기
    BUILD DEFERRED MVIEW 정의를 생성하되 데이터는 채워지지 않는다. 원본 데이터가 commit될 때 채워짐 

    8. 복사 시점도 다양하게 설정할 수 있다.

    ON COMMIT MVIEW의 원본 테이블 중 하나를 수정한 트랜잭션이 커밋되면 새로 고침이 자동으로 발생합니다. MVIEW가 빠르게 새로 고쳐질 수 있는 경우(즉, 복잡하지 않은 경우) 지정할 수 있습니다. 이 모드를 사용하려면 권한이 ON COMMIT필요합니다.
    ON DEMAND 새로 고침은 사용자가 패키지 DBMS_MVIEW( REFRESH, REFRESH_ALL_MVIEWS, REFRESH_DEPENDENT)에 포함된 사용 가능한 새로 고침 절차 중 하나를 수동으로 실행할 때 발생합니다.
    ON STATEMENT MVIEW기본 테이블에 대해 DML 작업이 수행되면 트랜잭션을 커밋할 필요 없이 자동으로 새로 고침이 발생합니다. 이 방법에서는 MVIEW의 기본 테이블에 MVIEW 로그를 생성할 필요가 없습니다.

    ON STATEMENT보다는 ON COMMIT을 많이 사용한다고 한다. 다중 사용자 환경에서 ON STATEMENT는 부적합하기 때문이다.

    원본 데이터에 대한 UPDATE, INSERT, DELETE가 빈번하게 일어나는 경우, 정확한 데이터 동기화를 위해 ON DEMAND를 이용할 수 있다. 

    9. 복사 옵션은 다음과 같다.

    COMPLETE MVIEW 의 정의 쿼리를 다시 계산하여 새로 고칩니다.
    FAST MVIEW  로그에 기록된 정보를 사용하거나 SQL*Loader 직접 경로 또는 파티션 유지 관리 작업에서 기록된 정보를 사용하여 MVIEW를 새로 고치기 위해 증분 변경 사항을 적용합니다.
    FORCE FAST 가능하면 새로 고침을 적용합니다. 그렇지 않으면 COMPLETE 새로 고침이 적용됩니다.
    NEVER MVIEW가 새로 고침 메커니즘으로 새로 고쳐지지 않음을 나타냅니다.

    https://oracle-base.com/articles/misc/materialized-views

    https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dwhsg/basic-materialized-views.html

     

    Database Data Warehousing Guide

     

    docs.oracle.com

    http://www.gurubee.net/lecture/1857

     

    Materialized View란?

    Materialized View란 ?   Materialized View(이하 MView로 표시) 이것은 제목 그대로 View 입니다.   하지만 일반 View는 논리적인 테이..

    www.gurubee.net

     

Designed by Tistory.