구체화된 보기 - 마지막 새로 고침 확인
저는 현재 일련의 견해와 구체화된 견해에 접근하고 있습니다.구체화된 내용은 구체화의 빈도와 성공에 대한 정보를 거의 제공하지 않는 제3자에 의해 유지됩니다.최근에는 구체화된 보기를 새로 고치는 데 실패하여 잘못된/지연된 데이터가 포함된 보고서를 다수 발송했습니다.
현재 저는 트랜잭션 시스템 내에서 최신 업데이트가 언제 발생했는지 확인하기 위해 사용하고자 하는 구체화된 각 항목에 대해 문의하고 있습니다. 업데이트되지 않은 경우 나머지 코드는 실행되지 않습니다. 하지만 이렇게 많은 노력이 낭비되고 때로는 잘못된 가정으로 이어질 수 있습니다(구체화된 보기가 새로 고쳐졌을 수 있습니다.그러나 추가 트랜잭션이 수행되지 않았습니다. 따라서 나머지 코드는 실행되지 않습니다.) 그리고 저는 다른 방법을 선호합니다.
Oracle 시스템 테이블을 사용하여 구체화된 보기를 새로 고쳤는지 확인할 수 있는 방법이 있습니까?그렇지 않다면 제가 제3자에게 연락하지 않고 어떻게 이 일을 할 수 있는지 아는 사람이 있습니까?
doc_180은 댓글에 이미 답을 한 것 같은데, 왜 답으로 추가되지 않았는지 모르겠어요.
SELECT owner, mview_name, last_refresh_date
FROM all_mviews
WHERE owner = <<user that owns the materialized view>>
AND mview_name = <<name of the materialized view>>
DBA 테이블에 대한 액세스 권한이 있는 경우 대체할 수 있습니다.DBA_MVIEWS위해서ALL_MVIEWS이렇게 하면 액세스 권한이 있는 일부 구체화된 보기가 아니라 모든 구체화된 보기가 새로 고쳐졌을 때에 대한 정보에 액세스할 수 있습니다.물론, 이 경우에 특별히 중요한 차이는 아닐 것입니다.
안타깝게도 Oracle 기본 날짜 형식은 YYYY-MM-DD입니다.시간이 필요한 경우 다음과 같은 방법을 사용하십시오.
SELECT owner, mview_name, to_char(LAST_REFRESH_DATE, 'yyyy-mm-dd hh24:mi:ss') last_refresh_date
FROM all_mviews
WHERE owner = 'FOO'
AND mview_name = 'MV_BAR';
개인적으로 all_snapshot을 사용하며, 이 정보는 DBA_MVIEWS 또는 ALL_MVIEWS의 정보를 보완합니다.
select owner, name, last_refresh, error, status, refresh_mode
from all_snapshots
where owner = 'owner';
언급URL : https://stackoverflow.com/questions/5798894/materialized-views-identifying-the-last-refresh
'source' 카테고리의 다른 글
| Pylint의 "너무 적은 공공 방법" 메시지는 무엇을 의미합니까? (0) | 2023.07.19 |
|---|---|
| 당신은 레일즈에서 DB 사용자 이름, pw, 데이터베이스 이름을 얻을 수 있습니까? (0) | 2023.07.19 |
| 판다와 함께하는 파이썬 타입 힌트? (0) | 2023.07.19 |
| 열 값을 기준으로 한 테이블에서 다른 테이블로 데이터를 가져오는 방법 (0) | 2023.07.19 |
| 그림에서 표시된 각 선에 대해 새 색상을 선택하는 방법 (0) | 2023.07.19 |