programing

일별로 레코드를 새로 고치는 구체화된 보기

closeapi 2023. 7. 20. 21:57
반응형

일별로 레코드를 새로 고치는 구체화된 보기

현재 REFRESH ON DEMAND를 사용하여 생성한 Materialized 뷰이므로 이 경우 아래 명령을 사용하여 MV를 명시적으로 새로 고쳐야 합니다.

BEGIN DBMS_MVIEW.REFRESH('MV_DATA'); END; 

하지만 지금은 이 뮤직비디오를 매일 새로 고쳐야 하니, 누구든 이것을 작성하는 것을 도와주세요.명시적 Job을 작성하거나 MV 자체에서 COMPLETE/FAST REFRESH 문을 사용하여 이 MV를 새로 고칠 수 있습니다.

잘 부탁드립니다!

START WITH 및 NEXT 절을 사용하여 구체화된 뷰를 생성해야 합니다.

create materialized view <mview_name>
refresh on demand 
start with sysdate next sysdate + 1
as select ............

따라서 매일 mview를 새로 고치려면 요청 시 새로 고침을 유지하고 다음 새로 고침 시간을 다음과 같이 설정해야 합니다.sysdate + 1그러나 임의의 간격을 설정할 수 있습니다.

이 작업을 수행하면 구체화된 보기가 생성되고 24시간마다 mview를 새로 고치는 작업이 Oracle에 설정됩니다.(sysdate + 1).

이 방법에 대한 자세한 내용은 다음 링크를 참조하십시오.

단순히 새로 고침을 위해 SQL 쿼리가 필요한 경우12 AM그렇다면 아래 질문으로 충분할 것입니다.

CREATE MATERIALIZED VIEW MV_DATA
BUILD IMMEDIATE 
REFRESH FAST START WITH (SYSDATE) NEXT (SYSDATE + 1) WITH ROWID
ON COMMIT
DISABLE QUERY REWRITE
AS SELECT * FROM <YOUR TABLE>

업데이트가 필요한 경우6 AM그런 다음 아래 스크립트를 사용합니다.다음과 같은 추가 논리를 볼 수 있습니다.+ 6 / 24로 변경해야 하는 경우4 AM라는 논리를 사용합니다.+ 4 / 24.

CREATE MATERIALIZED VIEW MV_DATA
BUILD IMMEDIATE 
REFRESH FAST START WITH (SYSDATE) NEXT (SYSDATE + 1) + 6 / 24 WITH ROWID
ON COMMIT
DISABLE QUERY REWRITE
AS SELECT * FROM <YOUR TABLE>

특정 시간(즉, 오전 6시)에 실행되도록 Sarath 스크립트를 편집했습니다.

CREATE MATERIALIZED VIEW MV_DATA
BUILD IMMEDIATE 
REFRESH FAST START WITH (SYSDATE) NEXT (TRUNC(SYSDATE) + 1) + 6 / 24 WITH ROWID
ON COMMIT
DISABLE QUERY REWRITE
AS SELECT * FROM YOURTABLE

매일 오전 1시에 MV 새로 고침

구체화된 보기 테스트 1 작성 sysdate+0 NEXT(trunc(sysdate)+1)+1/24로 인덱스 새로 고침을 사용하여 즉시 완료(요청 시), 시행 제약 조건을 사용하여 기본 로컬 롤백 세그먼트를 사용하여 쿼리 다시 쓰기 "사용자의 쿼리"를 비활성화합니다.

언급URL : https://stackoverflow.com/questions/22481099/create-materialized-view-which-refresh-records-on-daily

반응형