Oracle에서 구체화된 보기를 부분적으로 새로 고칠 수 있습니까?
다른 구체화된 보기, 일반 보기 및 일부 테이블을 기반으로 하는 매우 복잡한 Oracle 보기를 사용하고 있습니다("빠른 새로 고침"은 불가능).대부분의 경우, 이 보기의 기존 레코드는 날짜를 기반으로 하며 "안정적"이며, 새 레코드 세트는 새 날짜를 가집니다.
가끔 저는 뒷날짜를 받습니다.저는 그것들이 무엇인지 알고 있고 만약 제가 테이블을 유지하고 있다면 그것들을 어떻게 다루어야 하는지 알고 있지만, 저는 이것을 "보기"로 유지하고 싶습니다.전체 새로 고침은 약 30분 정도 걸리지만 지정된 날짜에는 25초밖에 걸리지 않습니다.
구체화된 보기의 일부만 업데이트되도록 지정할 수 있습니까(즉, 영향을 받는 날짜)?
보기를 스크랩하고 표와 절차를 사용하여 해당 표에 지정된 날짜를 채우거나 새로 고쳐야 합니까?
답변 3(스캐프맨)에서와 같이 날짜별로 분할합니다.
그냥 일반 MV를 새로 고칠 수 있습니다.table_refreshed
아래) 및 교환 키워드를 사용합니다.
ALTER TABLE all_partitions
EXCHANGE PARTITION to_calculate
WITH TABLE table_refreshed
WITHOUT VALIDATION
UPDATE GLOBAL INDEXES;
이 질문에 대한 답이 부족하다는 것을 더 많이 읽고 판단한 후, 저는 구체화된 관점의 단일 파티션을 새로 고치는 것은 불가능하다는 결론에 도달했습니다.
그렇지 않다는 것을 증명하는 구문 예제를 제시해 주신다면, 저는 기꺼이 당신의 답변을 승인된 것으로 표시하겠습니다.
앞으로 이 질문이 유용할 수도 있는 다른 사람들: Oracle 10g에서 파티션(또는 mview)을 새로 고치면 Oracle이 문제가 발생한다는 것을 알고 싶을 수도 있습니다.DELETE
다음에INSERT
.
이로 인해 성능 문제가 발생하는 경우(나와 같은) 사용할 수 있는 옵션이 있습니다.atomic_refresh => false
어느 쪽이TRUNCATE
,그리고나서INSERT /*+APPEND*/
.
파티션 변경 추적을 통해 구체화된 보기의 단일 파티션을 새로 고칠 수 있었습니다.
보기는 다음을 사용하여 생성되어야 합니다.REFRESH FAST WITH ROWID
옵션 및DBMS_MVIEW.REFRESH
와 함께 호출됩니다.'P'
방법.
일반 테이블과 마찬가지로 구체화된 보기를 분할할 수 있습니다.mview를 날짜별로 분할한 다음 필요한 파티션만 새로 고칠 수 있습니다.
언급URL : https://stackoverflow.com/questions/1783308/is-it-possible-to-partially-refresh-a-materialized-view-in-oracle
'programing' 카테고리의 다른 글
iOS 11에서 UI 검색 막대가 탐색 막대 높이를 높입니다. (0) | 2023.08.08 |
---|---|
파이썬에서 float('inf')의 요점은 무엇입니까? (0) | 2023.08.08 |
ARC는 file -fno-objc-arc를 표시하더라도 구조체 또는 유니언에서 Objective-C 개체를 금지합니다. (0) | 2023.07.29 |
전체 기록 스택을 지우고 Android에서 새 작업 시작 (0) | 2023.07.29 |
Ajax를 통해 Javascript Object를 PHP로 전송 (0) | 2023.07.29 |