我有一个复杂的查询,它不满足使用“REFRESH FAST ON COMMIT”或“REFRESH FAST”创建物化视图的条件。我已经使用“立即构建”创建了物化视图。我已经在查询中使用的所有表上创建了物化视图日志。我的问题是,当我刷新物化视图时,它是否会使用物化视图日志来增量刷新表,而没有设置“REFRESH FAST ON COMMIT”或“REFRESH FAST”创建选项的物化视图。它会在刷新时重做查询并从头开始构建所有记录。
user1609590
问问题
379 次
1 回答
0
我没有完全明白你的问题,但这里有一些答案:
您可以设置REFRESH FAST
和。
表示 Oracle 尝试进行 FAST 刷新,如果这不可能,则执行 COMPLETE 刷新。如果省略该子句,则为默认值。REFRESH COMPLETE
REFRESH FORCE
REFRESH FORCE
REFRESH FORCE
COMPLETE refresh 不会触及任何 MATERIALIZED VIEW LOG,它们一直保持到所有 FAST MATERIALIZED VIEW 都被刷新,即 COMPLETE refresh 重做查询并从头开始构建所有记录。
显然,您尝试创建一个可快速刷新的 MATERIALIZED VIEW,但没有成功。
尝试过程DBMS_MVIEW.EXPLAIN_MVIEW以检查为什么 FAST 刷新是不可能的。此过程需要表MV_CAPABILITIES_TABLE
:
CREATE TABLE MV_CAPABILITIES_TABLE
(
STATEMENT_ID VARCHAR2(30 BYTE),
MVOWNER VARCHAR2(30 BYTE),
MVNAME VARCHAR2(30 BYTE),
CAPABILITY_NAME VARCHAR2(30 BYTE),
POSSIBLE CHAR(1 BYTE),
RELATED_TEXT VARCHAR2(2000 BYTE),
RELATED_NUM NUMBER,
MSGNO INTEGER,
MSGTXT VARCHAR2(2000 BYTE),
SEQ NUMBER
)
于 2017-01-06T10:38:50.367 回答