物化视图中的刷新

时间:2012-07-23 20:16:58

标签: sql oracle10g materialized-views

我一直在尝试理解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。

由于

2 个答案:

答案 0 :(得分:2)

如果未在物化视图定义中指定计划,并且物化视图未定义为在提交时刷新,则需要调用DBMS_MVIEW.REFRESH以刷新物化视图中的数据。这就是REFRESH COMPLETE ON DEMAND引用的“需求” - 当你想要刷新时,你必须告诉物化视图。

答案 1 :(得分:0)

首先创建基本关系登录 我使用emp表作为基本关系,我希望在提交1秒后更新物化视图 因此,使用此查询创建基本关系登录 在emp上创建物化视图日志;
然后
创建物化视图测试
快速刷新
从sysdate开始
next sysdate +(1 /(24 * 60 * 60))
作为
select * from emp;