`
Fangrn
  • 浏览: 818196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ORACLE物化视图创建实例

阅读更多

公司的项目中遇到需要从其它系统的数据库中取数据进行统计分析的问题,初步选 择使用ORACLE的ODI工具进行抽数,但是对方提供的数据库用户下没有任何对象,只是有查询所有表的权限,因此无法做数据反向。于是决定使用物化视 图,把对方数据库中的数据拿过来,虽然数据量比较大,但是每月只拿一次,而且如果设置成增量更新,也不会太慢。现在记录下物化视图的创建过程(以一张表为 例)。

一、准备条件以及备注

      假设双方数据库都是ORACLE10g,需要同步过来的表名叫:GG_ZLX_ZHU,对方数据库用户名:username,密码:password,SID:CPEES。

二、开始干活

      1、首先要创建DB_LINK

      CREATE DATABASE LINK to_cpees

      CONNECT TO "username " identified by "password "

      using "CPEES "

      其中CPEES为新建的到对方数据库的TNS。执行,现在我们就已经创建了到对方数据库的DB_LINK TO_CPEES。

       2、创建物化视图快速刷新日志

       因为上面说过,以后视图的刷新将采用增量刷新的方式,因此,为配合增量刷新,ORACLE要求要在住表上建立物化视图日志。

       CREATE MATERIALIZED VIEW LOG ON GG_ZLX_ZHU
       WITH PRIMARY KEY
       INCLUDING NEW VALUES;

       (上面的SQL要在远程数据库上执行,不能在本地执行)

       3、创建物化视图

       物化视图,从名字上面来开,它应该是属于视图,但是确实物化。其物化是针对普通视图并没有真正的物理存储而言,其实可以简单的把物化视图看做一个物理表(不再做具体解释)。

       CREATE MATERIALIZED VIEW GG_ZLX_ZHU --创建物化视图
       BUILD IMMEDIATE  --在视图编写好后创建
       REFRESH FAST WITH PRIMARY KEY  --根据主表主键增量刷新(FAST,增量)
       ON DEMAND  -- 在用户需要时,由用户刷新
       ENABLE QUERY REWRITE  --可读写
       AS
       SELECT * FROM GG_ZLX_ZHU@TO_CPEES ; --查询语句

    

       4、视图刷新

       根据业务需要,每月不定时刷新,所以不能是JOB,而且数量 多,所以也不能一个一个刷新。根据以上条件,选择使用ORACLE自带工具DBMS_MVIEW工具包中REFRESH方法对物化视图进行刷新。该方法有 两个参数,第一个参数是需要刷新的物化视图名称,第二个参数是刷新方式。我们可以写存储过来,对每个物化视图调用一次REFRESH方法,也可以使用 “,”把物化视图连接以来,一次刷新。如下:

        CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS

        BEGIN

             DBMS_MVIEW.REFRESH('GG_ZLX_ZHU ','f');

        END P_MVIEW_REFRESH;

        或者使用

        CREATE OR REPLACE PROCDURE P_MVIEW_REFRESH AS

        BEGIN

             DBMS_MVIEW.REFRESH('GG_ZLX_ZHU,GG_ZLX_FU ','ff');

        END P_MVIEW_REFRESH;

        注意:

        1、如果需要同时刷新多个物化视图,必须用逗号把各个物化视图名称连接起来,并对

        每个视图都要指明刷新方式(f、增量刷新,c、完全刷新,?、强制刷新)。

        2、当日志和物化视图创建好后,删除日志,则需要重新创建物化视图,否则无法增量

        刷新。

        3、因为上面写的物化视图时根据主键进行更新,因此,主表必须有主键。

        4、以上文章中红色 是为可替换的,大家可以根据自己项目需求来修改。

希望上面的内容对大家能有帮助。

 

 

        忘了写删除方法了,日志和物化视图要分开删除

        DROP MATERIALIZED VIEW LOG ON GG_ZLX_ZHU@TOCPEES ;

        DROP MATERIALIZED VIEW GG_ZLX_ZHU ;

分享到:
评论

相关推荐

    oracle 物化视图详解(内含例子)

    ### Oracle 物化视图详解 #### 一、物化视图的概念与作用 物化视图是Oracle数据库中一种特殊的数据对象,它保存的是基于一个或多个表(称为基表)的查询结果集,并且这些结果集是物理上存在的。与普通的视图不同,...

    oracle物化视图

    【Oracle物化视图】是Oracle数据库中一种特殊的数据对象,它存储了查询结果集的物理副本,可以提供对远程数据的快速访问和一致性保证。物化视图的主要优点在于,它可以减少对远程数据源的访问,提高数据的本地可用性...

    oracle动态视图文档(详细版)

    7. **优化动态视图**:分析视图查询性能问题,提供索引策略、物化视图和查询重构等优化技巧。 8. **异常处理与错误调试**:介绍处理视图操作过程中可能出现的错误,以及如何进行有效的调试。 9. **实战案例**:...

    oracle九大性能视图

    ### Oracle九大性能视图解析 在Oracle数据库管理与优化的过程中,了解并掌握关键的性能视图对于提升系统性能至关重要。本文将重点介绍Oracle中的九大性能视图及其应用场景,并结合具体的示例来帮助读者更好地理解...

    oracle高级复制应用实例

    1. **物化视图复制**:物化视图是Oracle高级复制中的核心组件,它是一个预先计算好的查询结果,存储在目标数据库中。物化视图可以实时或定时更新,以反映源数据库中的最新数据。在配置物化视图复制时,需要确保物化...

    Oracle PL/SQL 实例精解(第4版涵盖Oracle 11g)+源码脚本

    8. **性能优化**:Oracle 11g引入了许多性能优化技术,如绑定变量、索引、物化视图等。本书会讨论如何利用PL/SQL编写高效的代码,并通过分析和调优提高程序性能。 9. **并发控制**:在多用户环境中,并发访问数据...

    oracle导入表导入数据实例

    - 如果涉及大量数据,考虑使用分区表或物化视图来优化性能。 综上所述,Oracle数据导入涉及到多个步骤,包括控制文件的编写、批处理文件的创建以及导入过程的监控。理解这些细节有助于更有效地管理和维护数据库中...

    Oracle课程设计 Oracle项目实例 Oracle编程

    这些文档可以帮助你在遇到困难时找到解决办法,同时也能帮助你理解Oracle的高级特性,如分区、物化视图、游标、异常处理以及数据库链接等。 在Oracle编程方面,你可能会学习到如何使用JDBC(Java Database ...

    Oracle数据库系统应用实例集锦与编程技巧

    首先,Oracle数据库系统的应用实例涵盖了多个方面,包括数据建模、表空间管理、索引创建、存储过程编写、触发器应用、视图构建等。在数据建模中,理解实体关系模型(ER模型)对于设计高效的数据结构至关重要。表空间...

    oracle数据库实例视频教程01

    最后,教程可能会简要介绍Oracle的性能优化技术,如查询优化器、索引优化、表分区和物化视图等。理解这些工具和技术能帮助你提高数据库的运行效率,减少系统瓶颈。 总的来说,"Oracle数据库实例视频教程01"将带你...

    oracle 在线考试实例(有sql源码答案)

    7. **性能优化**:为了确保在线考试系统的高效运行,需要考虑SQL查询优化、索引策略、分区技术、物化视图和数据库缓存等性能提升手段。 8. **安全性**:在Oracle中,安全是关键,涉及到用户权限管理、角色、审计、...

    Oracle数据库系统应用实例集锦与编程技巧.rar

    3. **性能调优**:Oracle提供了一系列工具和策略来优化数据库性能,如EXPLAIN PLAN分析查询执行计划,索引优化,绑定变量,物化视图,以及使用DBMS_STATS收集统计信息等。 4. **安全性**:包括用户权限管理、角色、...

    ORACLE_CDC.rar_oracle

    5. **CDC配置**:配置Oracle CDC涉及创建和管理物化视图日志(Materialized View Logs, MVLs),设置捕获实例,并定义目标位置。手册可能会详细解释这些步骤。 6. **性能优化**:由于CDC可能增加数据库负载,因此...

    oracle 实例数据库

    Oracle提供了许多工具和策略,如索引、分区、物化视图和SQL调优,来提高查询速度和整体性能。同时,数据库管理员还需要关注备份与恢复、安全性、并发控制等方面的知识。 总之,这个"Oracle实例数据库"为新手提供了...

Global site tag (gtag.js) - Google Analytics