본문 바로가기
Database/Oracle

[ORACLE] USER_SNAPSHOT_REFRESH_TIMES 뷰 완전 해부 및 활용법

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

USER_SNAPSHOT_REFRESH_TIMES 뷰 완전 해부 및 활용법
[ORACLE] USER_SNAPSHOT_REFRESH_TIMES

1. USER_SNAPSHOT_REFRESH_TIMES란?

USER_SNAPSHOT_REFRESH_TIMES는 Oracle 데이터베이스에서 사용자 소유의 매터라이즈드 뷰(MV, Materialized View)가 마지막으로 리프레시(refresh)된 시점을 기록하는 데이터 딕셔너리 뷰입니다. 해당 정보는 MV 동기화 상태 및 최신 데이터 여부를 파악할 때 매우 유용합니다.

2. 주요 용도 및 필요성

  • 매터라이즈드 뷰의 최신성 확인: 실시간 데이터와 MV 간 싱크가 맞는지 검증
  • 리프레시 스케줄 진단: 자동/수동 리프레시 주기의 실행 여부 점검
  • 성능 분석 자료 확보: MV 리프레시가 얼마나 자주 실행되었는지 기록 추적

3. 주요 컬럼 설명

컬럼명 설명
NAME 매터라이즈드 뷰(MV)의 이름
LAST_REFRESH_DATE 마지막 리프레시가 완료된 날짜 및 시간
LAST_REFRESH_TYPE 리프레시 유형 (COMPLETE, FAST 등)
LAST_REFRESH_MODE 리프레시 모드 (MANUAL, AUTOMATIC)

4. 실전 활용 예제

다음 쿼리는 최근 일주일 내에 수동으로 리프레시된 MV 목록을 출력합니다.

SELECT NAME, LAST_REFRESH_DATE, LAST_REFRESH_TYPE, LAST_REFRESH_MODE
FROM USER_SNAPSHOT_REFRESH_TIMES
WHERE LAST_REFRESH_DATE >= SYSDATE - 7
AND LAST_REFRESH_MODE = 'MANUAL';
      

5. 매터라이즈드 뷰 관련 뷰 비교

뷰 이름 주요 정보 특징
USER_SNAPSHOTS MV 정의 및 기본 정보 MV 구조, 쿼리 텍스트 등
USER_MVIEW_REFRESH_TIMES MV의 리프레시 이력 DBMS_MVIEW 관련
USER_SNAPSHOT_REFRESH_TIMES 마지막 리프레시 시점 리프레시 방식 및 결과 추적

6. 고급 활용 팁

  • 성능 튜닝: 리프레시 시간이 오래 걸리는 MV는 FAST REFRESH로 전환 고려
  • 모니터링 자동화: LAST_REFRESH_DATE를 기준으로 1일 이상 미실행된 MV를 자동 알림 시스템과 연계 가능
  • ETL 연동: 매일 밤 리프레시 후 동기화 여부를 체크하여 데이터 웨어하우스 품질 확보

7. 결론

USER_SNAPSHOT_REFRESH_TIMES는 복잡한 ETL 또는 보고 체계 속에서 매터라이즈드 뷰가 얼마나 신뢰할 수 있는 데이터를 가지고 있는지를 판단하는 핵심적인 도구입니다. 자동화된 스케줄링 시스템이나 실시간 리포팅 환경에서, 이 뷰를 정기적으로 점검하는 루틴을 마련하는 것이 중요합니다.

참고 자료

  • Oracle® Database Data Warehousing Guide 21c
  • Oracle Help Center: https://docs.oracle.com/en/
  • Materialized Views and Refresh Best Practices - Oracle Blogs
728x90