본문 바로가기
Database/Oracle

[ORACLE] ALL_MVIEW_KEYS 뷰 완벽 해설 및 실무 활용 전략

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

오라클 데이터베이스에서 매터리얼라이즈드 뷰(Materialized View)는 성능 향상과 데이터 웨어하우스 최적화에 필수적인 구성요소입니다. 이 매터리얼라이즈드 뷰의 동기화, 고유성 유지, 복제 시스템 내 유효성 검증을 위해 중요한 역할을 하는 뷰가 바로 ALL_MVIEW_KEYS입니다. 본 글에서는 ALL_MVIEW_KEYS 뷰의 구조와 목적, 실무 적용 전략을 상세히 설명합니다.

1. ALL_MVIEW_KEYS란?

ALL_MVIEW_KEYS는 오라클 데이터베이스에서 사용자가 접근 가능한 매터리얼라이즈드 뷰의 고유 키 정보를 담고 있는 딕셔너리 뷰입니다. 이는 매터리얼라이즈드 뷰가 기본 테이블로부터 데이터를 복제하거나 동기화할 때 데이터 무결성을 확보하는 데 핵심적인 정보를 제공합니다.

2. 주요 컬럼 설명

컬럼명 설명
OWNER 매터리얼라이즈드 뷰의 소유자
NAME 매터리얼라이즈드 뷰의 이름
KEY_POSITION 키 컬럼의 순서
COLUMN_NAME 해당 키 컬럼의 이름

3. ALL_MVIEW_KEYS의 역할

  • 동기화 지원: MView가 베이스 테이블의 변경을 추적하기 위해 고유 키 필요
  • 복제 정확성 확보: 키 정보가 정확하지 않으면 Fast Refresh 불가능
  • 의존성 분석: MView 구성 변경 시 의존성 있는 키 정보 파악

4. 실전 예제: MView 키 정보 조회

SELECT owner, name, key_position, column_name
FROM all_mview_keys
WHERE name = 'SALES_MV';

이 쿼리는 SALES_MV라는 매터리얼라이즈드 뷰가 어떤 키 컬럼으로 구성되어 있는지를 보여줍니다. 이는 Fast Refresh 가능한 구조인지 사전 점검할 때 유용합니다.

5. MVIEW 키 관련 뷰 비교

아래 표는 매터리얼라이즈드 뷰와 관련된 주요 딕셔너리 뷰들을 비교한 것입니다.

뷰 이름 주요 목적 포함 정보 차별점
ALL_MVIEW_KEYS 키 컬럼 정보 제공 컬럼 이름, 키 순서 동기화 및 고유성 관련 핵심 정보
ALL_MVIEWS 전체 매터리얼라이즈드 뷰 메타 정보 뷰 정의, 리프레시 방식 등 키 정보는 포함되지 않음
ALL_MVIEW_LOGS 로그 기반 변경 추적 정보 로그 대상 테이블, 포함된 컬럼 등 변경 감지 대상 확인 가능

6. 실무 활용 전략

  • Fast Refresh 지원 확인: MView 생성 전 KEY 컬럼이 명확히 정의되어 있는지 확인
  • 리플리케이션 최적화: 복제 성능 개선을 위해 MView 키를 기반으로 병렬 처리 구성
  • 변경 감지 자동화: 키 컬럼 기반으로 트리거 또는 변경 로그 연동

7. 자주 발생하는 실수 및 해결 팁

  • 문제: Fast Refresh가 동작하지 않음
  • 원인: ALL_MVIEW_KEYS에 키 정보가 존재하지 않음
  • 해결: MView 생성 시 WITH PRIMARY KEY 또는 ROWID 명시 필요

8. 주의사항

  • ALL_MVIEW_KEYS는 사용자가 직접 수정할 수 없는 읽기 전용 뷰입니다.
  • 매터리얼라이즈드 뷰 생성 시 기본 테이블의 PRIMARY KEY 또는 UNIQUE 제약조건을 반드시 정의해야 정확한 키 정보가 기록됩니다.

9. 활용 예시: 성능 최적화

대규모 데이터 웨어하우스 환경에서 MView를 활용하여 리포트 생성 시, 키 기반으로 서브파티셔닝을 적용하거나, 키 기반 인덱싱 전략을 수립하면 리프레시 성능이 비약적으로 향상됩니다.

10. 참고자료

728x90