Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle物化视图计算成本_Oracle_Optimization_Query Optimization_Materialized Views - Fatal编程技术网

Oracle物化视图计算成本

Oracle物化视图计算成本,oracle,optimization,query-optimization,materialized-views,Oracle,Optimization,Query Optimization,Materialized Views,在Oracle中,更新存储过程物化视图的计算成本是基于查询执行还是基于结果集?更具体地说,Oracle存储查询结果的方式是否会大大缩短刷新视图所需的时间 当然,需要很长时间执行的查询以及难以置信的大或小的结果集使得这不可能得到普遍的回答 问题更多的是视图如何实际存储结果集(在内存中、磁盘上),这样我就可以考虑重建物化视图的频率了。物化视图基本上是一个结合了更新算法的表 01:37:23 HR@sandbox> create materialized view mv_dual as sele

在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查询,而快速刷新执行增量更新


物化视图基本上是一个表,结合了一个更新算法

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查询,而快速刷新执行增量更新


有两种类型的mview

完全刷新mview-每次刷新都会重新生成整个mview。类似于delete和insert(注意:如果您指定atomic=F或版本<9,它将是truncate/insert-append)

快速刷新mview-oracle将创建一个表来存储增量更改。刷新时,存储在侧表中的更改将应用于mview

快速刷新在刷新时速度更快,但会减慢基表上的dml操作


当您考虑刷新策略时,应考虑对基表应用的更改和刷新MVIEW的频率。

有两种类型的MVIEW/P> 完全刷新mview-每次刷新都会重新生成整个mview。类似于delete和insert(注意:如果您指定atomic=F或版本<9,它将是truncate/insert-append)

快速刷新mview-oracle将创建一个表来存储增量更改。刷新时,存储在侧表中的更改将应用于mview

快速刷新在刷新时速度更快,但会减慢基表上的dml操作


当你考虑刷新策略时,你应该考虑对基表有多少变化,你需要刷新MVIEW。

你是什么意思,重建存储过程?@ BeelEnNo对不起,我的意思是“代码>物化视图< /代码>,但是我想在大脑上有存储过程。我已经重写了这个问题,谢谢!。。虽然我仍然不确定“刷新”或“重建”是不是正确的词。你说的重建存储过程是什么意思?@当然很抱歉,我的意思是
物化视图
,但我猜大脑中有存储过程。我已经重写了这个问题,谢谢!。。虽然我仍然不确定“刷新”或“重建”是否正确。那么@haki,如果我每天刷新一次物化视图,是否更适合执行完全刷新?那么@haki,如果我每天刷新一次物化视图,是否更适合执行完全刷新?