我们可以在完全刷新之前手动删除物化视图中的索引(Oracle 11g)吗?

时间:2014-02-26 20:22:35

标签: oracle11g refresh materialized-views

我有一个包含1200万条记录的物化视图。每次完成刷新都将atomic_refresh设置为false。刷新中未启用任何日志记录,mview是远程表的本地副本。没有加入。 mview需要大约一个小时才能刷新,我想减少刷新时间。

有大约20个索引,我认为因为它是一个完整的非atomin刷新,删除和重建索引需要很长时间。我可以在刷新之前手动删除索引并在刷新完成后手动构建索引吗?

1 个答案:

答案 0 :(得分:0)

你能吗?肯定。

这是调整流程的最有效方法吗?可能不是。执行增量刷新而不是完全刷新将允许您仅移动通过数据库链接实际更改的数据,并且可能会显着降低索引维护的成本。另外,如果您正在进行非原子刷新,则意味着Oracle在后台执行直接路径加载。这意味着索引维护已经推迟到将数据加载到表中之后,这限制了删除和重新创建索引的潜在好处。

如果您决定每次都手动删除并重新创建索引,则必须确保在添加或删除新索引时保持最新状态。当一些开发人员想要添加或删除索引时,这是一个相对容易忽视的维护麻烦。

相关问题