Если вы можете допустить, что MV в течение некоторого времени пусто, вы используете неатомарное обновление, которое в основном составляет TRUNCATE
и (прямое) INSERT APPEND
.
У вас есть два варианта с индексами: либо вы отбрасываете их перед обновлением, и заново создаете их после завершения обновления, либо вы позволяете Oracle Oracle выполнять эту работу (с очень похожим эффектом). Усечение сбрасывает индексы в пустое состояние, и последний шаг INSERT APPEND
создает их с нуля.
Я бы предпочел использовать второй вариант.
Отдельный шаг перестройка индексов (который может потребоваться для сильно обновленных таблиц с транзакциями с большой продолжительностью) включенMV с неатомарным полным обновлением не требуется.