首页 文章

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

提问于
浏览
4

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

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

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

谢谢您的回复 .

2 回答

  • 0

    “完全刷新”意味着您截断整个物化视图并插入新数据 .

    “快速刷新”表示仅更新(或插入/删除)主表上已更改的行 .

    就像“强制刷新”这样的信息意味着,Oracle尝试进行快速刷新,如果不可能,则执行“完全刷新”

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

    这里有一个完整的限制列表General Restrictions on Fast Refresh,有很多 .

  • 6

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

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

相关问题