Oracle:我们是否应该为在非原子模式下刷新的物化视图重建索引?

Oracle: Should we rebuild the indexes for a materialized view that was refreshed in non atomic mode?

我们在 Oracle 12c 数据库中有一个物化视图,目前正在以非原子模式完全刷新 [atomic_refresh => FALSE 并完全刷新]。此外,下一步是显式重建 Mview 的所有索引,这在 Mview 刷新中需要花费大量时间。一旦以完整模式和非原子模式刷新 Mview,这是重建所有索引的正确方法吗?

如果您可以容忍 MV 有一段时间是空的,您可以使用非原子刷新,这基本上是 TRUNCATE 和(直接)INSERT APPEND

对于索引,您有两种选择,要么在刷新之前删除它们,然后在刷新完成后重新创建它们,要么让 Oracle Oracle 完成这项工作(效果非常相似)。截断将索引重置为空状态,INSERT APPEND 的最后一步从头开始构建它们。

我更愿意使用第二个选项。

重建索引 的单独步骤(对于具有长时间事务的大量更新表可能需要)在不需要非原子完全刷新的 MV 上。