Oracle 10g中dbms_mview.refresh()函数

WBOY
풀어 주다: 2016-06-07 17:07:49
원래의
1977명이 탐색했습니다.

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

linux

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!