zoukankan      html  css  js  c++  java
  • 【Oracle】实体化视图

    1、老菜鸟露怯

      公司最近有个比较大的项目需要支援,左顾右盼生光辉,我就去了。被安排搞数据库接口这块,这就是坑的背景。

      有天需要把数据插入Oracle中间库的一个表里,插入时一直提示:ora-01732:此视图的数据操纵操作非法。

      

      通过PLSQL Developer看了半天,也没看出来有啥异常,路径也确认在Tables目录下;真是应验了一句话:无知害死人。

    2、度娘带来的惊喜

      物化视图也是种视图。Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。物化视图可以查询表,视图和其它的物化视图。

     2.1 创建物化视图语句如下

    CREATE MATERIALIZED VIEW VW_Table
            BUILD IMMEDIATE             --创建时立即刷新      
            REFRESH FORCE              --如果可以快速刷新则进行快速刷新,否则完全刷新        
            ON DEMAND                 --刷新方式          
            START WITH SYSDATE            --第一次刷新时间
            NEXT  SYSDATE+1/(24)          --刷新时间间隔
         AS SELECT 1 id,'A'name FROM dual;

      踩过的坑:创建视图时去掉注释;否则会有错误提示。

     2.2 查询实例化视图的信息 

    select * from DBA_MVIEWS where MVIEW_NAME='VW_TABLE';

      踩过的坑:MVIEW_NAME需区分大小写。

     2.3 修改刷新的频率

    ALTER MATERIALIZED VIEW VW_Table
           REFRESH FORCE 
           ON DEMAND 
           START WITH SYSDATE 
           NEXT SYSDATE+1/144;

     2.4 查询物化视图上次刷新时间

    SELECT last_refresh_date FROM user_mviews 
    WHERE mview_name = 'VW_TABLE';

     2.5 手动刷新物化视图

    BEGIN
       dbms_mview.refresh('VW_TABLE');
    END;

     2.6 删除物化视图

    DROP MATERIALIZED VIEW VW_TABLE;

     3、干巴巴的说明

     3.1 创建时生成数据:

      分为两种:build immediate 和 build deferred

    build immediate:是在创建物化视图的时候就生成数据。
    build deferred:则在创建时不生成数据,以后根据需要在生成数据。
    如果不指定,则默认为build immediate

      3.2 刷新模式

      物化视图有二种刷新模式:

      在创建时refresh mode是 on demand 还是 on commit

      on demand 顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;

      on commit  提交触发,一旦基表有了commit,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。一般用这种方法在操作基表时速度会比较慢。

      创建物化视图时未作指定,则Oracle按 on demand 模式来创建。

  • 相关阅读:
    Redis 再牛逼,也得设置密码!!
    Spring Data Redis 详解及实战一文搞定
    连接mysql
    angular6安装
    (6)ASP.NET HttpServerUtility 类
    (5)ASP.NET HttpResponse 类
    远程连接错误
    (3)一般处理程序 ,HttpContext类
    ASP.NET内置对象-状态管理
    (4)ASP.NET HttpRequest 类
  • 原文地址:https://www.cnblogs.com/Zeros/p/10066808.html
Copyright © 2011-2022 走看看