Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 10g中dbms_mview.refresh()函数

dbms_mview.refresh("表名", "F")   --快速刷新,也就是增量刷新
dbms_mview.refresh("表名", "C")   --完全刷新
我们常常利用物化视图来同步数据,或者迁移数据。在dbms_mview中的刷新过程,可以使用并行刷新的特性,可以有效的减少完全刷新的时间,下面是一个过程示例:
create materialized view log on test;  --创建物化视图日志
create table mv_test as select * fromtest@lnk_testdb where 1=2;  --创建与源表相同的表结构
create materialized view mv_test on prebuilt table refresh fast as
select * fromtest@lnk_testdb;  --创建物化视图
我们来看一下,我们常用的刷新过程参数含义:
PROCEDURE REFRESH
Argument Name                  Type                    In/Out Default?
------------------------------ ----------------------- ------ --------
TAB                            TABLE OF VARCHAR2(227)  IN/OUT
METHOD                         VARCHAR2                IN     DEFAULT
ROLLBACK_SEG                   VARCHAR2                IN     DEFAULT
PUSH_DEFERRED_RPC              BOOLEAN                 IN     DEFAULT
REFRESH_AFTER_ERRORS           BOOLEAN                 IN     DEFAULT
PURGE_OPTION                   BINARY_INTEGER          IN     DEFAULT
  PARALLELISM                    BINARY_INTEGER          IN     DEFAULT  --这里是并行控制参数
HEAP_SIZE                      BINARY_INTEGER          IN     DEFAULT
ATOMIC_REFRESH                 BOOLEAN                 IN     DEFAULT
NESTED                         BOOLEAN                 IN     DEFAULT
比如说我们要全刷新一张mv_test物化视图:
begin
dbms_mview.refresh(TAB=>"MV_TEST",METHOD=>"COMPLETE",PARALLELISM=>8);
end;
增量刷新就不需要使用什么并行了,通常情况下,是没有那个必要的。
begin
dbms_mview.refresh(TAB=>"MV_TEST",METHOD=>"FAST",PARALLELISM=>1);
end;
如果只是在刷新的时候,指定此parallelism并行参数,实际上并不能启用起并行,下面是文档中原文描述:
At the outset, it appears that the PARALLELISM parameter will invoke a parallel refresh of the materialized view. However, it doesn’t. The dynamic performance views V$PX_PROCESS and V$PX_SESSION provide information on the parallel execution processes and the sessions using parallel execution respectively. When the above refresh process is running, if we query these views, we will see that there are no parallel execution processes in use.
如果想在刷新的时候,启用并行,可以采用如下的三种办法:
1.修改master表的并行度属性
2.创建物化视图日志定义并行度属性
3.创建物化视图时,使用hint AIX 5L上安装Oracle 10G在Oracle存储过程中实现分页相关资讯      Oracle数据库  Oracle入门教程  oracle数据库教程 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数