刷新物化视图
问题描述:
我一直试图理解物化视图概念很长一段时间,但无法获得它的确切功能,除了它是不同服务器中的表的物理表(副本)。刷新物化视图
我曾尝试以下
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。
感谢
答
如果不指定你的物化视图的定义和物化视图的时间表没有定义,刷新提交,你需要调用DBMS_MVIEW.REFRESH
以刷新物化视图中的数据。这就是REFRESH COMPLETE ON DEMAND
提到的“需求” - 当你想要刷新时你必须告诉物化视图。
答
首先创建登录基础关系。
我使用emp表作为基础关系,并且我想在提交1秒后更新物化视图。
因此,使用此查询创建登录基关系
在emp上创建物化视图日志;
然后
创建物化视图测试
刷新快速
开始与SYSDATE
下SYSDATE +(1 /(24 * 60 * 60))
作为
SELECT * FROM EMP;
请首先看到[如何回答](https://stackoverflow.com/help/how-to-answer) – 2017-07-12 03:25:36