MVIEW refresh 를 해도 MLOG테이블의 로그가 삭제가 안됩니다. 0 1 1,530

by 최사원 [Oracle 기초] [2019.05.15 20:05:21]


MVIEW 를 사용하고 있습니다. 

SUPER란 테이블이 있고,  MVIEW테이블명은 MV_SUPER 입니다. 

SUPER란 테이블이 변동사항이 있으면 MLOG&_MV_SUPER 테이블에 UPDATE, INSERT, DELETE 정보가 로그가 쌓입니다. 

 

EXEC DBMS_MVIEW.REFRESH('MV_SUPER'); 

리프레쉬를 해주면 SUPER와 MV_SUPER 테이블은 데이터가 같아지고, MLOG에 쌓인 update, insert, delete 정보들이 삭제되는 걸로 알고 있습니다.

 

그런데, 리프레쉬가 계속 되어도 MLOG&_MV_SUPER테이블에 예전정보가 계속 쌓이는건 뭔가 설정이 있는건가요? 왜 안지워지는지 모르겠습니다. 

 

by 그로밋 [2019.05.16 09:33:38]

가장 먼저 체크해야 할것은, 다음과 같은 경우입니다.

다른 MVIEW가 같은 SUPER테이블에 의존하지만, 레프레시가 제대로 안되는 경우가 있습니다. 

그러면, MV_SUPER는 레프레시가 되더라도, MLOG$ 테이블에 예전 정보가 쌓이게 됩니다.

아래의 쿼리를 사용해 살펴 보셰요.

SELECT * FROM DBA_REGISTERED_MVIEWS; 

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입