写在前面

  先大概列一下数据库表设计的常规流程、方案、要遵循的规则

  1. 根据业务切分设计表
  2. 逻辑分层(数据库分层)
  3. 数据库结构设计与拆分:
    水平拆分(mysql分片)
    oracle分区
    物化视图
    中间表
    设计方案
  4. 优化结构设计:
    建立普通索引
    建立规则索引
    建立复合索引
    数据规则(添加你认为必要的扩展字段)
    预留字段(用于关联其他业务的)
    做一些合理的冗余

物化视图的概念

  视图(VIEW)是一种虚表,其目的仅仅是为了方便我们进行综合数据查询,它并不能提高性能。想要提高性能的话,就需要引出物化视图了。

  物化视图是一种特殊的物理表,物化(materialized)视图是相对普通视图而言的。

  物化视图的特点:

  • 是一个物理表而且不仅仅是一个物理表,可以查询user_tables看一下。
  • 物化视图是一种段(segment),有自己的物理存储属性。
  • 物化视图会占用数据库磁盘空间,可以查询user_segment看一下。

  物化视图刷新类型:手工刷新和自动刷新,默认为手工刷新。(ON DEMAND、ON COMMIT)

  二者的区别在于刷新的方法不同,ON DEMAND,仅在该物化视图“需要”被刷新才会刷新,就是更新物化视图,以保证表和视图的一致性;ON COMMIT是一旦表有COMMIT(事务提交),则立即刷新,更新物化视图。

物化视图的使用

create materialized view mv_name[选项N] as select * from table_name;

  • 选项1:BUILD[IMMEDIATE,DEFFERRED]是否在创建视图是生成数据,默认生成;defferred 需要的时候生成。
  • 选项2:REFRESH[FAST , COMPLETE , FORCE , NEVER],fast是增量属性,或者说叫快速刷新;complete 全表刷新;force 如果增量刷新可以使用则使用增量刷新,否则全表刷新;never表示不刷新。
  • 选项3:ON[DEMAND , COMMIT] 即手工刷新和提交时刷新。
  • 选项4:START WITH:通知数据库完成从主表到本地表第一次复制的时间。
  • 选项5:NEXT :刷新的时间间隔。

准备

用dba角色给scott分配创建物化视图的权限

创建简单物化视图

来更新一下看看物化视图有没有变:

结果显然可见,没有变,为什么呢?因为update后没有commit; commit后视图数据发生了变化。

配置为增量刷新

前面在创构建物化视图的时候,refresh被指定为force,但就目前来看,用的并不是增量刷新,而是全表刷新。因为物化视图并不知道基表在修改的时候更新了哪一条数据,所以要明确指定出来:

create materialized view log on a with rowid;

create materialized view log on b with rowid;

再创建一个物化视图,注意一点要AROWID和BROWID:

指定手动刷新,每隔一分钟刷一次。

create materialized view mv_ab
    refresh fast on demand
    start with sysdate
    next sysdate+1/1440
as
    select a.rowid as arowid , b.rowid as browid,a.id, a.name, b.clsid, b.name as clsname
    from a,b
    where a.clsid = b.clsid;

42.oracle物化视图的更多相关文章

  1. ORACLE物化视图具体解释

    一.物化的一般使用方法物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表.应用的局限性大,不论什么对视图的查询.oracle ...

  2. Oracle 物化视图 说明

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

  3. [O]ORACLE物化视图的使用

    用于数据复制的物化视图 物化视图的一个主要功能就是用于数据的复制,Oracle推出的高级复制功能分为两个部分,多主复制和物化视图复制.而物化视图复制就是利用了物化视图的功能. 物化视图复制包含只读物化 ...

  4. Oracle物化视图的创建及使用

    oracle物化视图 一.oracle物化视图基本概念  物化视图首先需要创建物化视图日志,  oracle依据用户创建的物化视图日志来创建物化视图日志表,  物化视图日志表的名称为mlog$_后面跟 ...

  5. ORACLE物化视图(物理视图)

    百度文库 http://wenku.baidu.com/view/f78f55c68bd63186bcebbc4b.html ORACLE物化视图 一.------------------------ ...

  6. Oracle物化视图的创建及使用(一

    Oracle物化视图的创建及使用 http://blog.csdn.net/tegwy/article/details/8935058 先看简单创建语句: create   materialized  ...

  7. Oracle物化视图的一般使用

    普通视图和物化视图根本就不是一个东西,说区别都是硬拼到一起的,首先明白基本概念,普通视图是不存储任何数据的,他只有定义,在查询中是转换为对应的定义SQL去查询,而物化视图是将数据转换为一个表,实际存储 ...

  8. 解决oracle 物化视图刷新失败

    oracle 物化视图刷新失败可能原因: 1.视图未建立物化视图日志 2.基表为授权给用户 1.物化视图语法 create materialized view [view_name] refresh ...

  9. oracle物化视图

    物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询. 这样对整 ...

随机推荐

  1. Redis开发、管理实战

    一.数据类型 String : 字符类型 Hash: 字典类型 List: 列表 Set: 集合 Sorted set: 有序集合 二.全局Key操作 KEYS * 查看KEY支持通配符 DEL 删除 ...

  2. SpringMVC学习总结(一)--Hello World入门

    一.什么是Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 ...

  3. Shared Libraries with Eclipse on 86_64 (64 bits) systems[z]

    If you followed my previous post http://linuxtortures.blogspot.com/2012/02/shared-libraries-with-ecl ...

  4. [Training Video - 2] [Java Introduction] [Operator, Loops, Arrays, Functions]

    Operator : While Loop : For Loop :  Arrays : Code : public class FirstJavaClass { public static void ...

  5. Android Studio修改默认Activity继承AppCompatActivity

    在Android Studio中新建Activity默认继承AppCompatActivity,感觉这点十分不爽,找了很久,终于发现在android Studio安装目录下有个模板文件,修改其中的参数 ...

  6. spring 启动完成后事件监听器处理

    有时候我们在spring容器启动完成后,我们需要做一些处理动作,这个时候怎么做呢? spring提供了事件监听器的处理机制. spring提供了内置的几类的事件: ContextClosedEvent ...

  7. [operator]windows10 + zookeeper + kafka

    软件版本 jdk-8u131-windows-x64 zookeeper-3.4.10.tar.gz kafka_2.11-2.0.1.tgz jdk直接就有exe安装版本,不做介绍 安装zookee ...

  8. AngularJs2.0

    AngularJs2.0中文官网站发布了. 官网地址:https://angular.cn/ 官网点击任何中文地方都可以显示英文原文,中文文档暂时只有 TypeScript的,JavaScript和d ...

  9. Kubernetes 中的pv和pvc

    原文地址:http://www.cnblogs.com/leidaxia/p/6485646.html 持久卷 PersistentVolumes 本文描述了 Kubernetes 中的 Persis ...

  10. 2016-2017 《移动平台开发》实验三 敏捷开发与XP实践

    概述 软件=程序+软件工程 软件企业=软件+商业模式 XP是一种轻量(敏捷).高效.低风险.柔性.可预测.科学而且充满乐趣的软件开发方式. 在更短的周期内,更早地提供具体.持续的反馈信息. 在迭代的进 ...