0

我一直在尝试理解物化视图的概念,但无法获得它的确切功能,除了它是不同服务器中表的物理表(副本)。

我试过以下

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。

谢谢

4

2 回答 2

2

如果您没有在您的物化视图定义中指定一个时间表,并且物化视图未定义为在提交时刷新,则您需要调用DBMS_MVIEW.REFRESH以刷新物化视图中的数据。这就是REFRESH COMPLETE ON DEMAND所指的“需求”——您必须告诉物化视图何时刷新。

于 2012-07-23T20:23:07.327 回答
0

首先在基础关系上创建日志。
我使用 emp 表作为基础关系,并且我想在提交 1 秒后更新物化视图。
因此,使用此查询在基本关系上
创建日志 在 emp 上创建物化视图日志;
然后
创建物化视图测试
刷新快速
启动 sysdate
next sysdate+(1/(24*60*60))
as
select * from emp;

于 2017-07-12T02:24:10.340 回答