复制MV快速刷新限制-测试
2012-01-13 22:32
155 查看
测试内容
用于复制功能的物化视图作为预计算物化视图的基表,会导致预计算物化视图无法快速刷新。
测试环境:
以上可知,用于复制的物化视图作为预计算物化视图的基表是不支持快速刷新的,而建立完全刷新的物化视图则没有问题。
理解为什么这么做?在远程库中准备好数据然后刷到本地库中,在以上例子中,在oralife准备数据刷到remoteor下。
我的实例命名正好反了。
本文测试完全参考:
http://yangtingkun.itpub.net/post/468/207875
用于复制功能的物化视图作为预计算物化视图的基表,会导致预计算物化视图无法快速刷新。
测试环境:
SQL> select * from v$version where rownum < 2; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
C:\Windows\system32>sqlplus lau/lau@oralife --这个实例相当于远程库 SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 13 20:45:42 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> CREATE TABLE DIM_A (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30)); 表已创建。 SQL> CREATE TABLE DIM_B (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30)); 表已创建。 SQL> CREATE TABLE FACT (ID NUMBER PRIMARY KEY, AID NUMBER, BID NUMBER, NUM NUMBER, 2 CONSTRAINT FK_FACT_AID FOREIGN KEY (AID) REFERENCES DIM_A(ID), 3 CONSTRAINT FK_FACT_BID FOREIGN KEY (BID) REFERENCES DIM_B(ID)); 表已创建。 SQL> INSERT INTO DIM_A SELECT ROWNUM, 'A'||ROWNUM FROM USER_OBJECTS; 已创建6行。 SQL> INSERT INTO DIM_B SELECT ROWNUM, 'B'||ROWNUM FROM USER_OBJECTS; 已创建6行。 SQL> INSERT INTO FACT SELECT ROWNUM, MOD(ROWNUM, 6) + 1, MOD(ROWNUM, 5 ) + 1, ROWNUM *2 2 FROM USER_OBJECTS; 已创建6行。 SQL> CREATE MATERIALIZED VIEW LOG ON DIM_A WITH PRIMARY KEY, ROWID; 实体化视图日志已创建。 SQL> CREATE MATERIALIZED VIEW LOG ON DIM_B WITH PRIMARY KEY, ROWID; 实体化视图日志已创建。 SQL> CREATE MATERIALIZED VIEW LOG ON FACT WITH PRIMARY KEY, ROWID; 实体化视图日志已创建。 SQL> CREATE MATERIALIZED VIEW MV_FACT REFRESH FAST AS 2 SELECT F.ROWID F_ROWID, A.ROWID A_ROWID, B.ROWID B_ROWID, F.ID, 3 A.NAME A_NAME, B.NAME B_NAME, NUM 4 FROM FACT F, DIM_A A, DIM_B B 5 WHERE F.AID = A.ID 6 AND F.BID = B.ID; 实体化视图已创建。 SQL> quit 从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 断开 C:\Windows\system32>sqlplus rem/rem@remoteor --这个实例相当于本地库 SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 1月 13 21:55:29 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> create public database link lau.oralife.cn connect to lau identified by lau using 'ORALIFE'; 数据库链接已创建。 SQL> select * from dim_a@lau.oralife.cn; ID NAME ---------- ------------------------------ 1 A1 2 A2 3 A3 4 A4 5 A5 6 A6 已选择6行。 SQL> CREATE MATERIALIZED VIEW DIM_A REFRESH FAST AS SELECT * FROM DIM_A@lau.oralife.cn; 实体化视图已创建。 SQL> CREATE MATERIALIZED VIEW DIM_B REFRESH FAST AS SELECT * FROM DIM_B@lau.oralife.cn; 实体化视图已创建。 SQL> CREATE MATERIALIZED VIEW FACT REFRESH FAST AS SELECT * FROM FACT@lau.oralife.cn; 实体化视图已创建。 SQL> CREATE MATERIALIZED VIEW LOG ON DIM_A WITH ROWID; 实体化视图日志已创建。 SQL> CREATE MATERIALIZED VIEW LOG ON DIM_B WITH ROWID; 实体化视图日志已创建。 SQL> CREATE MATERIALIZED VIEW MV_FACT REFRESH FAST AS 2 SELECT F.ROWID F_ROWID, A.ROWID A_ROWID, B.ROWID B_ROWID, F.ID, 3 A.NAME A_NAME, B.NAME B_NAME, NUM 4 FROM FACT F, DIM_A A, DIM_B B 5 WHERE F.AID = A.ID 6 AND F.BID = B.ID; FROM FACT F, DIM_A A, DIM_B B * 第 4 行出现错误: ORA-12053: 这不是一个有效的嵌套实体化视图 SQL> @?/RDBMS/ADMIN/UTLXMV 表已创建。 SQL> BEGIN 2 DBMS_MVIEW.EXPLAIN_MVIEW('SELECT F.ROWID F_ROWID, A.ROWID A_ROWID, B.ROWID B_ROWID, F.ID, 3 A.NAME A_NAME, B.NAME B_NAME, NUM 4 FROM FACT F, DIM_A A, DIM_B B 5 WHERE F.AID = A.ID 6 AND F.BID = B.ID'); 7 END; 8 / PL/SQL 过程已成功完成。 SQL> SELECT CAPABILITY_NAME, POSSIBLE, MSGTXT 2 FROM MV_CAPABILITIES_TABLE 3 WHERE CAPABILITY_NAME LIKE 'REFRESH%'; CAPABILITY_NAME P MSGTXT ------------------------------ - ------------------------------------------------------------------------ REFRESH_COMPLETE Y REFRESH_FAST N REFRESH_FAST_AFTER_INSERT N 不能满足嵌套实体化视图快速刷新的要求 REFRESH_FAST_AFTER_ONETAB_DML N 查看禁用 REFRESH_FAST_AFTER_INSERT 的原因 REFRESH_FAST_AFTER_ANY_DML N 查看禁用 REFRESH_FAST_AFTER_ONETAB_DML 的原因 REFRESH_FAST_PCT N PCT 不可能在实体化视图中的任何从表上 已选择6行。 --以上可知,用于复制的物化视图作为预计算物化视图的基表是不支持快速刷新的。 --看下面,建立完全刷新的物化视图则没有问题。 SQL> CREATE MATERIALIZED VIEW MV_FACT AS 2 SELECT F.ROWID F_ROWID, A.ROWID A_ROWID, B.ROWID B_ROWID, F.ID, 3 A.NAME A_NAME, B.NAME B_NAME, NUM 4 FROM FACT F, DIM_A A, DIM_B B 5 WHERE F.AID = A.ID 6 AND F.BID = B.ID; 实体化视图已创建。
以上可知,用于复制的物化视图作为预计算物化视图的基表是不支持快速刷新的,而建立完全刷新的物化视图则没有问题。
理解为什么这么做?在远程库中准备好数据然后刷到本地库中,在以上例子中,在oralife准备数据刷到remoteor下。
我的实例命名正好反了。
本文测试完全参考:
http://yangtingkun.itpub.net/post/468/207875
相关文章推荐
- 预计算MV基表为远程表的快速刷新-测试
- 快速准备(复制替换)一套新测试环境,CentOS7 MySQL相关配置
- Oracle 物化视图 快速刷新 限制 说明
- 在Google Chrome中快速解除网页屏蔽鼠标右键、复制等限制
- 教你在MySQL中快速复制表格作为测试数据
- 【ORACLE】物化视图快速刷新限制条件
- 物化视图 快速刷新限制条件
- Oracle 物化视图快速刷新限制说明
- 教你在MySQL中快速复制表格作为测试数据
- Oracle 物化视图 快速刷新 限制 说明
- 物化视图快速刷新的限制
- 利用Browsersync实现快速测试。(修改文件自动刷新,避免手动f5)
- CentOS 6.3 64bit上测试ATS 5.3.0中的正则刷新插件regex_revalidate
- 物化视图的快速刷新
- vim与复制,删除,粘贴,块操作以及快速替换功能 - myjavawork - 博客园
- 流复制实现standby数据库【双机热备】及异步、同步流复制测试
- 文字识别系统助力AI,快速高效超精准 | 支持免费测试
- 修改订单号数据类型4:复制订阅的主键限制 修改后
- 快速测试UTF8编码的文件是不是加了BOM,不限PHP
- 文字识别系统助力AI,快速高效超精准 | 支持免费测试