gpt4 book ai didi

Oracle - 使用 DBMS_MVIEW.REFRESH 刷新 'REFRESH FORCE ON DEMAND' View 时会发生什么

转载 作者:行者123 更新时间:2023-12-04 23:26:39 26 4
gpt4 key购买 nike

我有以下物化 View -

CREATE MATERIALIZED VIEW TESTRESULT 
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FORCE ON DEMAND
WITH PRIMARY KEY
AS
SELECT...
FROM...
WHERE...

这个实体化 View 没有支持实体化 View 日志。如上面的条款所示,该 MV 具有“ON DEMAND”指定,并且根据 Oracle 文档,

"[ON DEMAND] indicate[s] that the materialized view will be refreshed on demand by calling one of the three DBMS_MVIEW refresh procedures."



当我调用 DBMS_MVIEW.REFRESH('TESTRESULT') 时,发生了什么?是否手动检查每条记录以查看是否已更新?

甲骨文版本:10g

最佳答案

默认情况下(在不同版本的 Oracle 中此默认更改),这将对物化 View 进行完整的原子刷新。这意味着将删除物化 View 中的数据,重新执行底层查询,并将结果加载到物化 View 中。您可以通过为 ATOMIC_REFRESH 传入 FALSE 值来提高刷新效率。参数,即

dbms_mview.refresh( 'TESTRESULT', atomic_refresh => false );

这将导致实体化 View 被截断,查询重新执行,结果通过直接路径插入插入到实体化 View 中。这将比原子刷新更有效,但物化 View 在刷新期间将为空。

关于Oracle - 使用 DBMS_MVIEW.REFRESH 刷新 'REFRESH FORCE ON DEMAND' View 时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6349274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com