본문 바로가기
Database/Oracle

[ORACLE] ALL_MVIEWS 완벽 가이드 : 물리적 뷰 관리의 핵심

by Papa Martino V 2025. 6. 24.
728x90

오라클 ALL_MVIEWS 완벽 가이드: 물리적 뷰 관리의 핵심
[Oracle] ALL_MVIEWS

 

Oracle 데이터베이스에서 성능 향상 및 복잡한 쿼리 결과의 사전 계산을 위해 사용하는 물리적 뷰(Materialized View)는 데이터 웨어하우징, 분산 데이터베이스 등 다양한 환경에서 활용됩니다. 이러한 뷰의 정의와 속성, 리프레시 방식 등을 조회하는 데 사용되는 핵심 딕셔너리 뷰가 바로 ALL_MVIEWS입니다. 본 문서에서는 ALL_MVIEWS 뷰의 구조, 주요 컬럼, 활용 예제, 성능 관리 전략 및 관련 뷰와의 비교까지 통합적으로 설명합니다.

ALL_MVIEWS란?

ALL_MVIEWS는 현재 사용자가 접근 가능한 모든 물리적 뷰(Materialized View)에 대한 메타데이터를 제공하는 Oracle의 데이터 딕셔너리 뷰입니다. 물리적 뷰는 쿼리 결과를 물리적으로 저장하여, 반복적인 조인 및 집계 연산을 피할 수 있도록 해주는 강력한 기능입니다.

주요 컬럼 설명

  • OWNER: 물리적 뷰를 소유한 사용자
  • MVIEW_NAME: 물리적 뷰 이름
  • QUERY: 물리적 뷰 정의 시 사용된 SELECT 문
  • BUILD_MODE: IMMEDIATE 또는 DEFERRED
  • REFRESH_METHOD: COMPLETE, FAST, FORCE 중 하나
  • REFRESH_MODE: ON COMMIT 또는 ON DEMAND
  • LAST_REFRESH_TYPE: 마지막 리프레시의 유형
  • LAST_REFRESH_DATE: 마지막 리프레시 일시
  • UPDATABLE: 업데이트 가능 여부

활용 예제

예제 1: 현재 사용자 소유 물리적 뷰 목록 조회

SELECT mview_name, refresh_mode, refresh_method
FROM all_mviews
WHERE owner = USER;

예제 2: 리프레시 방식이 FAST인 뷰 찾기

SELECT mview_name, query
FROM all_mviews
WHERE refresh_method = 'FAST';

예제 3: 최근 리프레시 시간 확인

SELECT mview_name, last_refresh_date
FROM all_mviews
ORDER BY last_refresh_date DESC;

관련 뷰 비교

뷰 이름 설명 용도
ALL_MVIEWS 사용자가 접근 가능한 모든 물리적 뷰 메타데이터 뷰 정의 및 리프레시 속성 확인
DBA_MVIEWS DB 전체의 물리적 뷰 정보 DBA 권한 필요, 전체 시스템 분석
ALL_MVIEW_LOGS FAST 리프레시에 필요한 로그 테이블 정보 증분 리프레시 추적용

성능 최적화 전략

  • 리프레시 방법 선택: 자주 변경되는 데이터는 ON COMMIT, 덜 자주 변경되면 ON DEMAND
  • FAST 리프레시 구성: MV 로그 생성 및 기본 테이블 구성 필수
  • 리프레시 스케줄링: DBMS_MVIEW.REFRESH를 활용해 주기적 리프레시 자동화
  • 쿼리 최적화: 복잡한 조인과 집계는 사전에 계산된 MV로 처리
  • BUILD DEFERRED 전략: 대용량 테이블에 대해 MV를 나중에 생성하여 부하 최소화

실무 활용 사례

한 유통사의 데이터 웨어하우스 시스템에서는 매출 통계 데이터를 빠르게 집계하기 위해 다수의 물리적 뷰를 활용하고 있었습니다. 그러나 리프레시 시간이 오래 걸리고 시스템 자원을 과도하게 사용하는 문제가 발생했습니다.

  1. ALL_MVIEWS 뷰를 통해 모든 MV의 리프레시 방식과 쿼리 구조 파악
  2. 증분 리프레시(Fast Refresh)가 가능한 구조로 재설계
  3. MV 로그를 생성하고 리프레시를 스케줄 기반으로 전환
  4. 쿼리 리팩토링으로 MV 정의 간소화

그 결과 리프레시 시간이 평균 70% 단축되었으며, 보고서 생성 속도 또한 획기적으로 향상되었습니다.

결론

ALL_MVIEWS는 Oracle 물리적 뷰의 정의 및 리프레시 동작을 관리하는 데 있어 가장 핵심적인 뷰입니다. 데이터 집계, 성능 향상, 비동기화 환경 관리 등에 필수적인 역할을 하며, 이 뷰를 통해 MV 상태를 실시간으로 점검하고 전략적으로 최적화할 수 있습니다. 특히 대규모 분석 시스템을 운영하는 DBA 및 개발자에게 필수적인 도구입니다.

출처

728x90