Обновление существующего материализованного представления

Я создал материализованное представление со следующей информацией.

CREATE MATERIALIZED VIEW EMPLOYEE_INFO
AS
SELECT * FROM EMPLOYEE_TABLE WHERE LOCATION = 'Brazil'

Я не добавил интервал обновления для этого MV изначально. Теперь мне нужно обновлять этот MV каждый день в 0000HRS. Поможет ли следующая команда изменить ее на каждый день в 0000HRS?

ALTER MATERIALIZED VIEW EMPLOYEE_INFO
REFRESH COMPLETE 
START WITH SYSDATE

Если мне нужно обновлять его каждые 6 часов, как мне его выполнить? Является ли это возможным?

1 ответ

Решение

Для периодического обновления вы должны использовать NEXT пункт. Обновлять каждый день в 00:00:

ALTER MATERIALIZED VIEW EMPLOYEE_INFO
 REFRESH COMPLETE
 NEXT TRUNC(SYSDATE) + 1

Обновлять каждые 6 часов:

ALTER MATERIALIZED VIEW EMPLOYEE_INFO
 REFRESH COMPLETE
 NEXT SYSDATE + 6/24

Из документации ( ПОСЛЕ МАТЕРИАЛИЗИРОВАННОГО ВИДА):

НАЧАТЬ С Пункта

Укажите дату НАЧАТЬ С, чтобы указать дату первого времени автоматического обновления.

Следующая статья

Укажите NEXT, чтобы указать выражение даты для расчета интервала между автоматическими обновлениями.

И значения START WITH, и NEXT должны оцениваться как время в будущем. Если вы опустите значение START WITH, Oracle Database определяет первое время автоматического обновления, оценивая выражение NEXT относительно времени создания материализованного представления. Если вы укажете значение START WITH, но пропустите значение NEXT, Oracle Database обновит материализованное представление только один раз. Если вы пропустите значения START WITH и NEXT или полностью опустите alter_mv_refresh, Oracle Database не обновит автоматически материализованное представление.

Во время следующего автоматического обновления Oracle Database обновляет материализованное представление, оценивает NEXT-выражение для определения следующего времени автоматического обновления и продолжает обновляться автоматически.

Другие вопросы по тегам