[英]Oracle materialized view computational cost
在Oracle中基于查询执行或结果集更新存储过程的 实现的计算成本是物化视图吗? 更具体地说,Oracle是否以这种方式大大节省了刷新视图所需的时间来存储查询结果?
当然,执行时间非常长的查询以及结果集的大小令人难以置信,使得这无处不在。
问题更多是关于视图实际上如何存储结果集(在内存中,在磁盘上)的信息,因此我可以考虑重建实例化视图的频率。
物化视图基本上是一个表,结合有算法对其进行更新。
01:37:23 HR@sandbox> create materialized view mv_dual as select dummy from dual;
Materialized view created.
Elapsed: 00:00:00.52
01:37:56 HR@sandbox> select object_name, object_type from user_objects where object_name = 'MV_DUAL';
OBJECT_NAME OBJECT_TYPE
--------------- -------------------
MV_DUAL TABLE
MV_DUAL MATERIALIZED VIEW
Elapsed: 00:00:00.01
您还可以在预建表上创建实例化视图。
如果我们谈论刷新-有两种选择:快速刷新和完全刷新。
完全刷新仅重新执行MV查询,而快速刷新则执行增量更新。
http://docs.oracle.com/cd/E16338_01/server.112/e10706/repmview.htm#i29858
有两种类型的mview
完成刷新mview-整个mview将在每次刷新时重建。 类似于删除和插入(注意:如果您指定atomic = F或版本小于9,将被截断/插入附加)。
快速刷新mview-oracle将创建一个表来存储增量更改。 刷新时,存储在边表中的更改将应用于mview。
快速刷新在刷新时更快,但是会减慢基表上的dml操作。
在考虑刷新策略时,应考虑对基表进行了多少更改以及需要多长时间刷新一次mview。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.