2017-01-04 15 views
3

내 자신의 스키마에서 구체화 된 뷰가 있고 구체화 된 뷰 소스가 다른 스키마 테이블이지만이 마스터 테이블에는 900 개의 행이 있으며,이 마스터 테이블에서 일부 dml 작업을 수행 한 후에 내가 알 수있는 것처럼이 구체화 된 뷰를 새로 고칩니다. 그리고 나는 약간의 resarch를했다 "어떻게 내 자신의 구체화 된보기를 새로 고칠 수 있습니다"그리고 그것은 "당신은 완전 새로 고침이나 빠른 새로 고침을 할 수있다"고하지만 나는 내 질문이 간단하므로 이러한 솔루션의 의미를 이해하지 못했습니다;Materialized View에서 완전 새로 고침과 빠른 새로 고침의 차이점은 무엇입니까?

MV에서 완전 새로 고침과 빠른 새로 고침의 차이점은 무엇입니까?

P.S : 내 마스터 테이블에 100 만 개 이상의 행이있는 경우 어느 것을 선택해야합니까? (빠름 또는 완료)

답장을 보내 주셔서 감사합니다.

+1

오라클 설명서를 읽으려고 했습니까? "빠른 새로 고침"은 항상 바람직하지만 많은 조건/요구 사항이 있습니다. 그들이 충족되는지 확인해야합니다. 완전 새로 고침은 전체보기가 처음부터 계산된다는 것을 의미하며 오랜 시간이 걸릴 수 있습니다. 빠른 새로 고침은 영향을받는 행만 다시 계산된다는 것을 의미합니다.이 개념은 이해가되지 않는 경우도 있습니다 (이 경우보기가 빠르게 새로 고칠 수 없습니다). https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG015 – mathguy

+1

문서화 및 검색이 약간 도움이 될 것입니다. – XING

+0

나는 문서를 읽고 있었다. 그러나 나는 그들이 무엇을 말하고 있는지에 관해 이해하지 않았다. :). 답장을 보내 주셔서 감사합니다 :) :) – MFARKAN

답변

4

"완전 새로 고침"은 전체 구체화 된보기를 자르고 새 데이터를 삽입한다는 의미입니다.

"빠른 새로 고침"은 마스터 테이블에서 변경된 행만 업데이트 (또는 삽입/삭제)한다는 의미입니다.

그리고는 정보로 "강제 새로 고침"을 의미, 오라클은 빠른 새로 고침을 시도하고 이것이 가능하지 않은 경우 다음

보통 빠른 새로 고침 완료 새로 고침보다 훨씬 빠르다 "완전 새로 고침"을 할 수 있지만 제한이 있습니다 . 마스터 테이블에 MATERIALIZED VIEW LOG을 정의해야합니다.

여기에는 제한 목록의 전체 목록이 있습니다. General Restrictions on Fast Refresh, 꽤 많이 있습니다.

+0

답장을 보내 주셔서 감사합니다! 나는 이해한다 : – MFARKAN

+0

만약 우리가'DBMS_MVIEW.REFRESH ('m_view_name');을 호출하면 어떤 것이 실행 되는가? – mCeviker

+0

MView의 작성 방법에 따라 다릅니다. 새로 고침하는 동안 설정할 수 없습니다. –

0

항상 그렇듯이 가능한 경우 두 가지를 모두 시도하고 응용 프로그램을 측정하십시오. 일반적으로 빠른 새로 고침은 데이터의 일부만 변경된 경우 훨씬 빠를 것입니다. 모든 데이터가 변경된 경우 완전 새로 고침이 좋습니다.

빠른 새로 고침을 통해 Oracle은 기본 테이블에 대한 변경 사항을 추적하고 새로 고칠 때 변경 사항을 구체화 된보기에 적용합니다. 반면에 완전 새로 고침을 수행하면 구체화 된 뷰가 처음부터 다시 작성됩니다. 비용이 많이 드는 수백만 행이 있지만 응용 프로그램에 대해 더 알지 못해도 최상의 옵션을 선택하는 것은 불가능합니다.