zoukankan      html  css  js  c++  java
  • 物化视图

    创建物化视图的基础结构:
     
    CREATE MATERIALIZED VIEW cust_sales_mv               --cust_sales_mv is the materialized view name
      PCTFREE 0  TABLESPACE summ                         --summ is Storage options
      STORAGE (initial 1M next 1M pctincrease 0)        
      BUILD DEFERRED                                     --when to build it
      REFRESH COMPLETE                                   --How to refresh the data
      ENABLE QUERY REWRITE                               --Use this for query rewrite 
      USING NO INDEX                                     --Do not create an index
      AS SELECT c.cust_id, s.channel_id,                 --Detail query
           SUM(amount_sold) AS amount 
         FROM   sales s, customers c
         WHERE  s.cust_id = c.cust_id                    --Detail tables
         GROUP BY c.cust_id, s.channel_id                --MV keys
         ORDER BY c.cust_id, s.channel_id;
     
    创建方式(build methods):
    1.BUILD IMMEDIATE
    2.BUILD DEFERRED
     
    默认方式是BUILD IMMEDIATE,两者的区别在于创建时是否生成数据,前者创建时创建数据。
     
    查询重写(query rewrite):
    1.ENABLE QUERY REWRITE
    2.DISABLE QUERY REWRITE
     
    默认方式是DISABLE QUERY REWRITE,指出创建的物化视图是否支持查询重写。
    查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。
     
    刷新(refresh):
    刷新可根据时间、方式进行分类。
     
    刷新时间(refresh time):
    1.ON DEMAND
    2.ON COMMIT
     
    ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新,即更新物化视图,以保证和基表数据的一致性。
    ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。但在有了ON COMMIT视图后,速度减低了很多倍。
     
    刷新方式(refresh methods):
    1.COMPLETE
    2.FAST
    3.FORCE
     
    完全刷新(COMPLETE):会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。
    快速刷新(FAST):采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。FAST必须创建基于主表的视图日志。对于增量刷新选项,如果在子查询中存在分析函数,则物化视图不起作用。
    强制刷新(FORCE):Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷新,否则进行完全刷新。
     
     
     




  • 相关阅读:
    Visifire正式版(v1.1)发布
    [转]PSP机能强大!已能模拟运行WINDOWS系统?
    在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介 Virus
    C#的加密解密算法,包括Silverlight的MD5算法 Virus
    MMORPG programming in Silverlight Tutorial (10)Implement the sprite’s 2D animation (Part IV)
    Game Script: Rescue Bill Gates
    MMORPG programming in Silverlight Tutorial (9)KeyFrame Animation
    MMORPG programming in Silverlight Tutorial (5)Implement the sprite’s 2D animation (Part II)
    MMORPG programming in Silverlight Tutorial (7)Perfect animation
    MMORPG programming in Silverlight Tutorial (3)Animate the object (Part III)
  • 原文地址:https://www.cnblogs.com/nolanchan/p/8016316.html
Copyright © 2011-2022 走看看