Answers:
使用实例化视图的最大好处之一是Oracle负责保持数据同步。如果您有单独的聚合表,则您有责任保持数据同步。这通常需要合理数量的代码和相当数量的测试,并且大多数组织会设法犯下会导致聚合表不同步的漏洞。当您尝试实现聚合表的增量刷新时,尤其如此。
另一个主要好处是,根据设置,当用户对基表发出查询时,Oracle可以使用查询重写来使用物化视图。因此,例如,如果您有一个针对明细表的大量现有报告,这些明细表产生每日,每月和每年的汇总结果,则可以在基表上创建一个物化视图,以每天的方式汇总数据,优化器可以利用该物化视图处理所有现有查询。这使优化数据仓库中的报告工作负载变得更加容易,而无需尝试去重写数十个报告以使用新的聚合表或弄乱DBMS_ADVANCED_REWRITE
以强制您自己重写查询。
物化视图是一个包含查询结果的数据库对象。它们是位于远程的数据的本地副本,或用于基于表数据的聚合来创建摘要表。 http://www.oraappdata.com/2016/04/materialized-view.html
ON DEMAND
是默认的刷新行为。实例化视图必须使用创建ON COMMIT
。维护物化视图不是免费的。不过,它可能比触发器便宜。