我们在Oracle 12c数据库中有一个物化视图,当前正在完全刷新并且以非原子模式[atomic_refresh => FALSE并完成刷新]。此外,还有一个下一步,即显式重建Mview的所有索引,这需要花费大量时间进行Mview刷新。一旦以完整模式和非原子模式刷新了Mview,这是重建所有索引的正确方法吗?
如果您可以容忍MV在一段时间内为空,则可以使用非原子刷新,这基本上会产生TRUNCATE
和(直接)INSERT APPEND
。
您对索引有两种选择,要么在刷新之前将其删除,要么在刷新完成后重新创建它们,或者让Oracle Oracle来完成工作(效果非常相似)。截断会将索引重置为空状态,INSERT APPEND
的最后一步是从头开始新建索引。
我希望使用第二个选项。
重建索引的一个单独步骤(对于具有长时间事务的重型更新表可能需要执行此步骤)是在具有非原子完全刷新的MV上。