精华内容
下载资源
问答
  • Oracle物化视图刷新方式on commit

    千次阅读 2013-03-06 20:11:04
    General Restrictions on Fast Refresh The defining query of the materialized view is restricted as follows: The materialized view must not contain references to non-repeating expressions like SYSDATE
    General Restrictions on Fast Refresh
    The defining query of the materialized view is restricted as follows:
    
    The materialized view must not contain references to non-repeating expressions like SYSDATE and ROWNUM.
    
    The materialized view must not contain references to RAW or LONG RAW data types.
    
    It cannot contain a SELECT list subquery.
    
    It cannot contain analytical functions (for example, RANK) in the SELECT clause.
    
    It cannot contain a MODEL clause.
    
    It cannot contain a HAVING clause with a subquery.
    
    It cannot contain nested queries that have ANY, ALL, or NOT EXISTS.
    
    It cannot contain a [START WITH …] CONNECT BY clause.
    
    It cannot contain multiple detail tables at different sites.
    
    On-commit materialized view cannot have remote detail tables.
    
    Nested materialized views must have a join or aggregate.
    展开全文
  • Oracle 物化视图刷新

    2013-06-25 12:36:22
    Oracle 物化视图刷新 物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相同的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图的时候已...

    Oracle 物化视图刷新

    物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相同的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图更可以实现视图的所有功能,而物化视图却不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用,但是物化视图占用数据库磁盘空间。具体语法如下: 

    create materialized view [view_name] 
    refresh [fast|complete|force] 

    on [commit|demand] | 
    start with (start_time) next (next_time) 

    as 
    {创建物化视图用的查询语句} 

    具体实例如下: 

    CREATE MATERIALIZED VIEW an_user_base_file_no_charge 
                 REFRESH COMPLETE START WITH SYSDATE 
                NEXT TRUNC(SYSDATE+29)+5.5/24    --红色部分表示从指定的时间开始,每隔一段时间(由next指定)就刷新一次 
    AS 
    select distinct user_no 
    from cw_arrearage t 
    where (t.mon = dbms_tianjin.getLastMonth or 
           t.mon = add_months(dbms_tianjin.getLastMonth, -1)) 
    删除物化视图: 
    drop materialized view an_user_base_file_no_charge; 

    以上是Oracle创建物化视图(Materialized View,以下简称MV)时的常用语法,各参数的含义如下: 

    1.refresh [fast|complete|force] 视图刷新的方式: 
    fast: 增量刷新.假设前一次刷新的时间为t1,那么使用fast模式刷新物化视图时,只向视图中添加t1到当前时间段内,主表变化过的数据.为了记录这种变化,建立增量刷新物化视图还需要一个物化视图日志表。create materialized view log on (主表名)。 
    complete:全部刷新。相当于重新执行一次创建视图的查询语句。 
    force: 这是默认的数据刷新方式。当可以使用fast模式时,数据刷新将采用fast方式;否则使用complete方式。 

    2.MV数据刷新的时间: 
    on demand:在用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新) 
    on commit:当主表中有数据提交的时候,立即刷新MV中的数据; 
    start ……:从指定的时间开始,每隔一段时间(由next指定)就刷新一次; 


    手动刷新物化视图: 
    begin 
         dbms_mview.refresh(TAB=>'an_user_base_file_no_charge', 
                                           METHOD=>'COMPLETE', 
                                           PARALLELISM=>8);   --PARALLELISM并行控制参数 
    end; 


    增量刷新就不需要使用什么并行了,通常情况下,是没有那个必要的。 

    begin 
         dbms_mview.refresh(TAB=>'an_user_base_file_no_charge', 
                                           METHOD=>'FAST', 
                                           PARALLELISM=>1); 
    end; 

    展开全文
  • 表结构和创建的物化视图如下,但是物化视图创建的job自动执行不更新数据,物化视图的数据全部被清空为0,手动去执行生成的job可以更新物化视图的数据。是不是表有什么特殊性?或者建立物化视图中我用了where 和...

    表结构和创建的物化视图如下,但是物化视图创建的job自动执行不更新数据,物化视图的数据全部被清空为0,手动去执行生成的job可以更新物化视图的数据。

    是不是表有什么特殊性?或者建立物化视图中我用了where 和sysdate,但是我自己建立的测试表的物化视图都能自动更新数据。 这点我就搞不懂了,换这个表就有问题。

    CREATE TABLE "SZHQUALITY"."LOCATION_RESULTS"

    (        "LOCATION_RESULT_UID" RAW(16) NOT NULL ENABLE,

    "UNIQUEPART_ID" VARCHAR2(80) NOT NULL ENABLE,

    "LOCATION_ID" VARCHAR2(40) NOT NULL ENABLE,

    "RESULT_DATE" TIMESTAMP (6) WITH TIME ZONE NOT NULL ENABLE,

    "PROCESS_NUMBER" NUMBER(*,0),

    "PSTATINTERVAL" NUMBER(10,0),

    "WORKCYCLE_COUNTER" NUMBER(3,0),

    "RESULT_STATE" NUMBER(3,0),

    "PART_ATTRIBUTE" NUMBER(10,0),

    "TYPE_NUMBER" VARCHAR2(20),

    "TYPE_VARIANT" VARCHAR2(20),

    "TYPE_VERSION" VARCHAR2(50),

    "MACHINE_ID" VARCHAR2(100),

    "SHIFT_CODE" NUMBER(2,0),

    "ARCHIVE_FLAG" NUMBER(6,0),

    "BATCH" VARCHAR2(80),

    "DELETE_DATE" TIMESTAMP (6) WITH TIME ZONE,

    "TEST_TYPE" NUMBER(4,0),

    "TIME_STAMP" TIMESTAMP (6) WITH TIME ZONE NOT NULL ENABLE,

    "V_RESULT_DATE" DATE GENERATED ALWAYS AS (TO_DATE(TO_CHAR("RESULT_DATE",'YYYYMMDD HH24:MI:SS'),'YYYYMMDD HH24:MI:SS')) VIRTUAL VISIBLE ,

    CONSTRAINT "LOCATION_RESULTS_PK" PRIMARY KEY ("LOCATION_RESULT_UID"))

    create materialized view MV_TEST refresh complete on demand start with to_date('25-08-2015 12:00:00', 'dd-mm-yyyy hh24:mi:ss') next SYSDATE+1/1440 as

    select * from location_results WHERE RESULT_DATE > SYSDATE - 5/1440;

    展开全文
  • oracle 物化视图刷新失败可能原因: 1.视图未建立物化视图日志 2.基表为授权给用户 1.物化视图语法 create materialized view [view_name] refresh [fast|complete|force] [ on [commit|demand] | start...

    oracle 物化视图刷新失败可能原因:

    1.视图未建立物化视图日志

    2.基表为授权给用户

     

    1.物化视图语法

    create materialized view [view_name]
    refresh [fast|complete|force]
    [
    on [commit|demand] |
    start with (start_time) next (next_time)
    ]
    as
    {创建物化视图用的查询语句}
    以上是Oracle创建物化视图(Materialized View,以下简称MV)时的常用语法,各参数的含义如下:
    1.refresh [fast|complete|force] 视图刷新的方式:
    fast: 增量刷新.假设前一次刷新的时间为t1,那么使用fast模式刷新物化视图时,只向视图中添加t1到当前时间段内,
    主表变化过的数据.为了记录这种变化,建立增量刷新物化视图还需要一个物化视图日志表。create materialized view log on (主表名)。
    (多张表时,此语句也生效,创建后,原来的表中会多出两类视图表:MLOG$_table_name和RUPD$_table_name)
     
    complete:全部刷新。相当于重新执行一次创建视图的查询语句。
    force: 这是默认的数据刷新方式。当可以使用fast模式时,数据刷新将采用fast方式;否则使用complete方式。
    
    2.MV数据刷新的时间:
    on demand:在用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新)
    on commit:当主表中有数据提交的时候,立即刷新MV中的数据;
    start ……:从指定的时间开始,每隔一段时间(由next指定)就刷新一次;
    比如说我们要全刷新一张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;
    /
     
    或者,也可以这样执行:
    exec dbms_mview.refresh('MV_TEST','F');
    

    2. 建立基表的物化视图日志 

    -- tablename 为基表 with后面可以接主键,rowid  primary key是主键,rowid是表更新涉及的行号,sequence是序列对,自由添加。 
    --including new values必须包含
    create materialized view log on tablename with primary key,rowid,sequence (AREA_NM_R, AREA_NM_N) including new values;
    

    3. 赋予主表的权限给建立视图的用户

    grant select on tabelname to A;
    

    4.示例

    --1. 建立基表的物化视图日志 
    create materialized view log on auth_role with rowid, sequence (role_id, role_ad, bpm_group, role_name, role_enable, role_type, order_num) including new values ;
    --2. 授权
    grant select on sys_role to auth;
    --3. 创建物化视图
    create materialized view viewname
    refresh force on demand
    start with SYSDATE next SYSDATE + NUMTODSINTERVAL(2,'MINUTE') 
    as
    select role_id, role_ad, bpm_group, role_name, role_enable, role_type, order_num, 'auth' sys_code from auth_role
    union all
    select role_id, role_ad, bpm_group, role_name, role_enable, role_type, order_num, 'bpm' sys_code from cfcap.sys_role
    union all
    select role_id, role_id role_ad, role_id bpm_group, role_name, 
    to_number(ROLE_STAT) role_enable,to_char(role_type)||'' role_type, 
    0 order_num, 'wbs' sys_code from forms.ts_role;
    

      

      

    转载于:https://www.cnblogs.com/penghaihang/p/7610467.html

    展开全文
  • oracle物化视图刷新

    2019-05-29 14:59:02
  • Oracle物化视图语法2010-05-21 09:58 物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相同的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图...
  • 需求是一个会不断增加列的视图,需要用物化视图来表现。 物化视图中使用 create materialized view mview1 as select * from view1; view1是一个普通视图, 使用多表关联+行转列function 最终就是一个会...
  • ORACLE物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。通常情况下,物化视图被称为主表(在复制期间)或...
  • 简介物化视图在数据仓库中常用,将结果预先计算好并存储在物化视图中,Oracle数据库通过Query Rewrite访问物化...物化视图支持两种刷新方式:Fast RefreshComplete Refresh.Fast refresh的好处在于增量式更新MV,而C...
  • oracle 的东西一直都觉得非常的...大数据的倒换,使用了物化视图.   大约倒换测试了10遍左右. 以往很快(5分钟以内)的一张表,现在增量刷新了大约40分钟,还是没过来. SELECT sid, /* Session ID */ opname, /*...
  • 说明:物化视图刷新方式有三种:全量刷新、增量刷新和强制刷新,三种刷新方式具体如下: 全量刷新(complete):不管使用哪种刷新方式,物化视图的首次刷新都使用全量刷新的方式。全量刷新机制是首先物化视图对应表...
  • 随着系统的使用一些物化视图的源表的数据量在不断的增长,原本采用完全方式几秒就能刷新完成的物化视图,现在需要等待很久的时间才能刷新完成。 其实物化视图从一开始就帮我们想好了解决方法:通过物化视图日志来...
  • 2、物化视图可以建立索引,语法和正常索引建立方式一样 3、创建手动刷新物化视图(全量刷新) create materialized view 物化视图名 as 查询语句 4、创建物化视图,使其每隔1分钟就刷新一遍(全量刷新) create ...
  • oracle 物化视图的自动刷新方法: 方法1,直接在创建的时候,指定start with ,如下代表每分钟执行1次 create materialized view big_table_mv nologging refresh fast on demand with rowid START WITH TO_...
  • oracle物化视图刷新机制

    千次阅读 2020-07-23 11:18:38
    在一些关于数据量比较大的报表时,执行一次的时间是很长的,例如本人最近的一条sql,执行了11个小时也没有出现结果,为了保证客户的使用的良好性,所以需要创建一个物化视图来实现数据的快速查询,物化视图的概念...
  • Oracle物化视图与物化视图日志

    万次阅读 多人点赞 2019-04-02 21:43:30
    文章目录物化视图物化视图与普通视图的区别创建一个存放person的表创建一个存放person的address的表初始化数据创建物化视图的语句1.build [immediate|deferred]2.refresh [fast|complete|force] 视图刷新方式:3.MV...
  • Oracle物化视图的快速刷新机制是经过物化视图日志完成的。Oracle如何经过一个物化视图日志就能够支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理。post首先,看一下物化视图的结构:SQL> create ...
  • ORACLE 物化视图

    2019-11-19 14:21:53
    oracle materialized view --oracle 物化视图 说明 物化视图也是种视图。Oracle物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表...
  • Oracle 物化视图

    千次阅读 2019-06-06 08:42:10
    近来看到一些文章有关Oracle 物化视图的,整合了下,比较详细,以作memo: 物化视图(Materialized View)在9i以前的版本叫做快照(SNAPSHOT),从9i开始改名叫做物化视图。其实无论是快照还是物化视图,都能体现出这...
  • 手动刷新oracle物化视图的方法

    万次阅读 2019-03-14 15:25:58
    参考链接:... 手动刷新oracle物化视图的方法: BEGIN DBMS_MVIEW.REFRESH ( list => 'MV_T_HR_BMXX_NIRC', Method =>'COMPLETE', refresh_after_errors => Tru...
  • Create materialized view log on F_RPT_TASK WITH ROWID -- ----F_RPT_TASK为表名 ----注:(F_RPT_TASK为表名或者视图名,关于视图...
  • 3 refresh fast #增量刷新 4 start with sysdate #首次刷新的时间,当前时间开始 5 next sysdate + 7 #刷新的周期,每7天一次 6 with primary key 7 as select * from emp;
  • Oracle物化视图

    2019-11-05 19:54:45
    物化视图 物化视图与普通视图的区别 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询, Oracle 都实际上转换为视图SQL语句的...
  • oracle物化视图

    2019-09-23 14:18:30
    oracle物化视图 一、oracle物化视图基本概念物化视图首先需要创建物化视图日志,oracle依据用户创建的物化视图日志来创建物化视图日志表,物化视图日志表的名称为mlog$_后面跟基表的名称,如果表名的长度超过20位,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,594
精华内容 1,437
关键字:

oracle物化视图刷新方式