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

What is the difference between complete refresh and fast refresh in materialized view?

我在自己的模式中有实体化视图,实体化视图源是另一个模式 table 但是,这个主控 table 有 900 行,我在这个主控上做了一些 dml 操作 table 之后我将刷新这个实体化视图,如你所知,我做了一些研究“我如何刷新我自己的实体化视图”,它说“你可以做完全刷新或快速刷新” ,但我不明白这些解决方案的意思所以我的问题很简单;

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

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

感谢您的回复。

"Complete Refresh" 表示截断整个实体化视图并插入新数据。

"Fast Refresh" 表示您仅更新(或 insert/delete)主表上已更改的行。

正如信息 "Force Refresh" 的意思,Oracle 尝试进行快速刷新,如果这不可能,则执行 "Complete Refresh"

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

这里是完整的限制列表General Restrictions on Fast Refresh,有很多。

一如既往地视情况而定,因此如果可能的话,请尝试两者并针对您的应用进行测量。作为一般规则,如果只有一小部分数据发生变化,快速刷新可能会快得多。如果所有数据都改变了,完全刷新更好。

通过快速刷新,Oracle 会跟踪基表的更改,并在刷新时将更改应用到物化视图。另一方面,完全刷新会从头开始重建物化视图。数以百万计的行会很昂贵,但同样不可能在不了解您的应用程序的情况下选择最佳选项。