2017-02-27 2 views
0

mview 로그가 사용 중인지 어떻게 확인합니까?Oracle mview가 사용 중입니까?

select * from sys.mlog$ 

위의 sys 테이블에는 2 행이 있지만 mviews에는 어떤 연결이 있습니까?

편집 : 이해 부족으로 인해 내 질문이 불투명 할 수도 있습니다. 나는 다음과 같이 다시 쓰려고 노력할 것이다 :

나는 내 데이터베이스에 2mview 로그를 본다. 나는 또한 그들이 속한 테이블을 보았다. 나의 이해는 mview 로그가 "새로 고침"mviews에 사용된다는 것입니다. 어쩌면 그들은 다른 물건들에도 사용될 수 있습니다. 따라서 이러한 mview 로그를 삭제하기 전에 사용 중인지 알고 싶습니다. 어떻게 든 이러한 mview 로그에 의존하는 mview를 쿼리 할 수 ​​있습니까?

답변

1

다음 쿼리를 사용할 수 있습니다.

select master, log, temp_log from sys.mlog$ where mowner = user and master = 'Table Name'; 

마스터는 테이블 이름을 나타냅니다. Mview 로그 파일은 materialized view없이 존재할 수 있습니다.

DBMS_MVIEW 패키지의 GET_MV_DEPENDENCIES 절차를 사용하면 특정 테이블과 관련된 MView를 알 수 있습니다.

예 : 절차 위 당신에게 테이블에 관련된 MViews을 줄 것이다 dbms_mview.get_mv_dependencies (owner.table, output);

업데이트. 쿼리 USER/ALL_MVIEWS은 새로 고침 방법을 알고 있습니다.

SQL> select mview_name, refresh_method from user_mviews; 

MVIEW_NAME      REFRESH_ 
------------------------------ -------- 
M_VIEW_A      FAST 

새로 고침 방법이 FAST 인 경우 MView 로그가 필요합니다.

문서 :Refresh Dependent Materialized Views with REFRESH_DEPENDENT

+0

어쩌면 나는 장님하지만, MVIEW 로그에 포인트를 "로그"표를하지 "마스터"지점을 않고? "temp_log"는 내 2 행에서 null입니다. 그래서 어떤 mviews이 mview 로그를 필요로하는지 아직 알 필요가 있습니다. – Stig

+0

Mivew 로그는 빠른 새로 고침 mview에서만 사용할 수 있습니까? – Stig