본문 바로가기
Database/Oracle

[ORACLE] USER_SNAPSHOTS 완전 해설 : 사용자 스냅샷(MView) 정보와 동기화 분석

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

USER_SNAPSHOTS 완전 해설 : 사용자 스냅샷(MView) 정보와 동기화 분석
[ORACLE] USER_SNAPSHOTS

 

Oracle 스냅샷(Snapshot)은 현재는 Materialized View (MView)라는 명칭으로 통합되었으며, 원격 또는 로컬 데이터의 복제본을 저장하고 정기적으로 갱신하는 방식으로 사용됩니다. USER_SNAPSHOTS 뷰는 사용자가 생성한 MView 객체에 대한 상태 및 동기화 정보를 제공합니다. 본 문서에서는 USER_SNAPSHOTS 뷰의 구조, 사용 목적, 실무 적용 사례를 중심으로 Oracle 복제 환경에서의 역할을 명확히 이해할 수 있도록 설명합니다.

1. USER_SNAPSHOTS 뷰란?

USER_SNAPSHOTS는 사용자가 소유한 Materialized View에 대한 메타데이터 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 스냅샷의 쿼리 정의, 갱신 방식, 최신 동기화 시간 등의 정보가 포함됩니다.

2. 주요 컬럼 설명

컬럼명 설명
NAME 스냅샷(물리적 뷰)의 이름
QUERY 스냅샷 정의 시 사용된 SELECT 쿼리
UPDATABLE 해당 MView가 업데이트 가능한지 여부 (Y/N)
LAST_REFRESH_TYPE 마지막 리프레시 방식 (COMPLETE, FAST, FORCE)
LAST_REFRESH_DATE 가장 최근에 스냅샷이 리프레시된 시각
BUILD_MODE 초기 스냅샷 구축 시 사용된 방식 (IMMEDIATE, DEFERRED)

3. 스냅샷 유형 비교

유형 설명 갱신 방식 적합 용도
COMPLETE 전체 데이터를 다시 불러옴 전체 테이블 재구축 대규모 변경 시
FAST 변경된 부분만 반영 Materialized View Log 필요 자주 변경되는 소규모 데이터
FORCE FAST 실패 시 COMPLETE 자동 수행 혼합 전략 유연한 동기화

4. 실전 활용 예제


-- 사용자 스냅샷의 최근 리프레시 확인
SELECT NAME, LAST_REFRESH_DATE, LAST_REFRESH_TYPE
FROM USER_SNAPSHOTS
ORDER BY LAST_REFRESH_DATE DESC;

-- 스냅샷 정의 쿼리 확인
SELECT NAME, QUERY
FROM USER_SNAPSHOTS
WHERE NAME = 'SALES_MV';
  

5. 관련 뷰 비교표

뷰 이름 내용 접근 범위 활용 목적
USER_SNAPSHOTS 자신이 생성한 스냅샷(MView) 정보 현재 사용자 MView 정의 및 상태 확인
DBA_MVIEWS DB 전체 MView 정보 DBA 전체 복제 전략 관리
USER_MVIEW_LOGS MView 로그 테이블 목록 현재 사용자 FAST 갱신 상태 확인

6. 자주 묻는 질문 (FAQ)

Q1. 스냅샷은 자동으로 갱신되나요?

A. 갱신 주기를 정의한 REFRESH ON SCHEDULE 옵션이 있을 경우 자동으로 동기화됩니다. 그렇지 않다면 수동으로 DBMS_MVIEW.REFRESH를 실행해야 합니다.

Q2. FAST 갱신이 실패하는 이유는?

A. 대상 테이블에 MATERIALIZED VIEW LOG가 없거나, 로그에 필요한 컬럼이 누락되었을 경우 실패합니다.

Q3. 스냅샷은 뷰와 무엇이 다른가요?

A. 뷰(View)는 실시간 쿼리 결과만을 보여주는 논리 객체인 반면, 스냅샷(MView)은 실제 데이터를 물리적으로 저장하고 주기적으로 갱신되는 객체입니다.

7. 결론

USER_SNAPSHOTS 뷰는 오라클 사용자에게 스냅샷(MView)의 구조와 동기화 상태를 모니터링할 수 있는 중요한 정보를 제공합니다. 데이터 웨어하우스, 복제 환경, 리포트 최적화 등 다양한 시나리오에서 효과적인 MView 전략 수립을 위해 이 뷰의 활용이 필수적입니다.

8. 참고 문헌

  • Oracle Database Data Warehousing Guide – Materialized Views
  • Oracle SQL Language Reference – CREATE MATERIALIZED VIEW
728x90