物化视图中完全刷新和快速刷新之间有什么区别?

时间:2017-01-04 13:51:51

标签: oracle rdbms materialized-views

我在自己的架构中有物化视图,物化视图源是另一个架构表但是,这个主表有900行,我在这个主表上做了一些dml操作,之后我将刷新这个物化视图,如你所知,我做了一些研究“如何刷新我自己的物化视图”,它说“你可以完成刷新或快速刷新”,但我不明白这些解决方案的含义所以我的问题很简单;

MV中的完全刷新和快速刷新有什么区别?

P.S:如果我的主表有100万或更多行,我应该选择哪一行? (快速或完整)

感谢您的回复。

2 个答案:

答案 0 :(得分:6)

"完成刷新"表示您截断整个物化视图并插入新数据。

"快速刷新"表示只更新(或插入/删除)主表上已更改的行。

就像信息"强制刷新"意思是,Oracle尝试进行快速刷新,如果不可能,则执行"完全刷新"

通常快速刷新比完全刷新快得多,但它有限制。您必须在主表上定义MATERIALIZED VIEW LOG

以下是限制General Restrictions on Fast Refresh的完整列表,其中有很多。

答案 1 :(得分:0)

一如既往,所以如果可能,请尝试两者并测量您的应用程序。作为一般规则,只要只有一小部分数据发生变化,快速刷新可能会快得多。如果所有数据都已更改,则完整刷新更好。

通过快速刷新,Oracle会跟踪基表的更改,并在更新时将更改应用于实例化视图。另一方面,完全刷新从头开始重建物化视图。数百万行会很昂贵,但如果不了解更多有关应用程序的信息,就无法选择最佳选项。