Materialized View Refresh의 개념과 유형
Materialized View Refresh는 기본 테이블의 변경사항을 감지하고 구체화된 뷰의 데이터를 동기화하는 프로세스입니다. 대규모 데이터셋을 매번 재계산하는 대신, 증분 변경만을 적용하여 시간을 단축할 수 있습니다.
주요 새로고침 방식은 세 가지입니다. 완전 새로고침(COMPLETE)은 구체화된 뷰의 정의 쿼리를 전체 재실행하여 모든 데이터를 다시 계산합니다. 로그 기반 빠른 새로고침(FAST)은 Materialized View Log를 이용해 변경된 행만 추적하고 적용합니다. 파티션 변경 추적(PCT)은 기본 테이블이 파티션되어 있을 때, 변경된 파티션 범위만을 재계산합니다.
빠른 새로고침을 위한 아키텍처
빠른 새로고침은 Materialized View Log 메커니즘에 의존합니다. 기본 테이블에서 DML 작업이 발생하면 내부 트리거가 변경사항을 로그에 기록합니다. 각 로그는 변경된 행의 사전/사후 값, ROWID, 시퀀스 정보를 포함하며, 새로고침 시 이를 통해 증분 업데이트만 수행합니다.
실무에서 주의할 점은 원자성(Atomicity) 설정입니다. atomic_refresh를 FALSE로 설정하면 완전/PCT 새로고침 시 DELETE 대신 TRUNCATE 명령으로 더 빠른 처리가 가능합니다. ON COMMIT 방식은 매 트랜잭션 커밋 시 자동 새로고침되어 항상 최신 데이터를 유지하지만 커밋 성능이 저하될 수 있습니다.