我一直在尝试理解Materialized Views概念,但是无法获得它的确切功能,除了它是不同服务器中表的物理表(副本)。
我试过以下
CREATE MATERIALIZED VIEW TEMP_MV
BUILD DEFERRED
REFRESH COMPLETE
ON DEMAND
AS
SELECT C1,C2,C3 FROM TAB;
这里我使用了BUILD DEFERRED
,这样我只得到基表的结构
之后我可以使用REFRESH获取记录,但我如何执行REFRESH
我甚至尝试BUILD IMMEDIATE
以便显示记录但是如果我在基表中插入了新记录,我就无法在MV中获得这些新记录。
CREATE MATERIALIZED VIEW TEMP_MV
BUILD IMMEDIATE
REFRESH COMPLETE
ON DEMAND
FOR UPDATE
AS
SELECT C1,C2,C3 FROM TAB;
我正在使用ORACLE 10G。 请帮助我更好地理解MV。
由于
答案 0 :(得分:2)
如果未在物化视图定义中指定计划,并且物化视图未定义为在提交时刷新,则需要调用DBMS_MVIEW.REFRESH
以刷新物化视图中的数据。这就是REFRESH COMPLETE ON DEMAND
引用的“需求” - 当你想要刷新时,你必须告诉物化视图。
答案 1 :(得分:0)
首先创建基本关系登录
我使用emp表作为基本关系,我希望在提交1秒后更新物化视图
因此,使用此查询创建基本关系登录
在emp上创建物化视图日志;
然后
创建物化视图测试
快速刷新
从sysdate开始
next sysdate +(1 /(24 * 60 * 60))
作为
select * from emp;