◈ MView를 수동으로 Refresh 하기
DBMS_MVIEW 패키지를 이용해서 수동적으로 MView의 Data를 최근의 데이터로 변경할 수 있습니다.
DBMS_MVIEW 패키지의 REFRESH, REFRESH_ALL_MVIEWS, REFRESH_DEPENDENT를 call 하면 됩니다.
-- 아래와 같이 emp테이블에 임이의 데이터를 INSERT한 후 MView를 갱신해 보세요.. SQL>INSERT INTO EMP ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM,DEPTNO ) VALUES ( 7935, 'KIM', 'MANAGER', 7839, TO_Date( '12/17/1980 12:00:00 오전', 'MM/DD/YYYY HH:MI:SS AM'), 3000, NULL, 20); 1 개의 행이 만들어졌습니다.
SQL> commit; 커밋이 완료되었습니다.
-- DEPT_SAL은 이전 MView생성 강좌에서 생성한 MView입니다. -- DEPT_SAL MView는 ON DEMAND로 생성을 했기 때문에 데이타가 변경되지 않은 것을 확인 할 수 있습니다. -- DEPT_SAL MView를 ON COMMIT로 생성했을 경우 위에 commit시점에서 dept_sal이 변경이 됩니다. SQL> SELECT * FROM DEPT_SAL;
--수동으로 dept_sal 하나의 MView만 갱신 한 후 다시 조회하면 변경된 것을 확인 할 수 있습니다. SQL>BEGIN DBMS_MVIEW.REFRESH('DEPT_SAL'); END; / PL/SQL 처리가 정상적으로 완료되었습니다.
-- BASE 테이블에 EMP테이블이 들어간 모든 MView를 갱신 BEGIN DBMS_MVIEW.REFRESH_DEPENDENT('EMP'); END;
-- 모든 MView를 모두 갱신 BEGIN DBMS_MVIEW.REFRESH_ALL_MVIEWS; END;
<<참고문헌>> - Oracle Technical Note Materialized View 글 / 박경희 - Oracle Technical Bulletins No.12181 MATERIALIZED VIEW 활용방법 - Oracle 8i Tuning 정식 교재 |