42.oracle物化视图
写在前面
先大概列一下数据库表设计的常规流程、方案、要遵循的规则
- 根据业务切分设计表
- 逻辑分层(数据库分层)
- 数据库结构设计与拆分:
水平拆分(mysql分片)
oracle分区
物化视图
中间表
设计方案 - 优化结构设计:
建立普通索引
建立规则索引
建立复合索引
数据规则(添加你认为必要的扩展字段)
预留字段(用于关联其他业务的)
做一些合理的冗余
物化视图的概念
视图(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物化视图的更多相关文章
- ORACLE物化视图具体解释
一.物化的一般使用方法物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表.应用的局限性大,不论什么对视图的查询.oracle ...
- Oracle 物化视图 说明
一. 物化视图概述 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 物化视图可 ...
- [O]ORACLE物化视图的使用
用于数据复制的物化视图 物化视图的一个主要功能就是用于数据的复制,Oracle推出的高级复制功能分为两个部分,多主复制和物化视图复制.而物化视图复制就是利用了物化视图的功能. 物化视图复制包含只读物化 ...
- Oracle物化视图的创建及使用
oracle物化视图 一.oracle物化视图基本概念 物化视图首先需要创建物化视图日志, oracle依据用户创建的物化视图日志来创建物化视图日志表, 物化视图日志表的名称为mlog$_后面跟 ...
- ORACLE物化视图(物理视图)
百度文库 http://wenku.baidu.com/view/f78f55c68bd63186bcebbc4b.html ORACLE物化视图 一.------------------------ ...
- Oracle物化视图的创建及使用(一
Oracle物化视图的创建及使用 http://blog.csdn.net/tegwy/article/details/8935058 先看简单创建语句: create materialized ...
- Oracle物化视图的一般使用
普通视图和物化视图根本就不是一个东西,说区别都是硬拼到一起的,首先明白基本概念,普通视图是不存储任何数据的,他只有定义,在查询中是转换为对应的定义SQL去查询,而物化视图是将数据转换为一个表,实际存储 ...
- 解决oracle 物化视图刷新失败
oracle 物化视图刷新失败可能原因: 1.视图未建立物化视图日志 2.基表为授权给用户 1.物化视图语法 create materialized view [view_name] refresh ...
- oracle物化视图
物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询. 这样对整 ...
随机推荐
- gradle 构建测试
以后决不能再犯此类低级错误
- 286被围绕的区域 · Surrounded Regions
[抄题]: 给一个二维的矩阵,包含 'X' 和 'O', 找到所有被 'X' 围绕的区域,并用 'X' 填充满. 样例 给出二维矩阵: X X X X X O O X X X O X X O X X ...
- Java 设计模式系列(十)外观模式
Java 设计模式系列(十)外观模式 门面模式(Facade):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这 ...
- 分布式事务,EventBus 解决方案:CAP【中文文档】(转)
出处:http://www.cnblogs.com/savorboard/p/cap-document.html 前言 很多同学想对CAP的机制以及用法等想有一个详细的了解,所以花了将近两周时间写了这 ...
- java中double和float精度丢失问题
为什么会出现这个问题呢,就这是java和其它计算机语言都会出现的问题,下面我们分析一下为什么会出现这个问题:float和double类型主要是为了科学计算和工程计算而设计的.他们执行二进制浮点运算,这 ...
- windows下 git+tortoiseGit的使用【转】
一定要自己写出来才能牢记,所以我来写一下 git确实比svn好用的多了,最起码只有一个文件夹用来标记版本信息比svn所有文件夹下都要放一个文件夹来标记版本信息先进多了,不然你不想要版本管理这些文件的时 ...
- 软件工程:java实现wordcount基本功能
github链接:https://github.com/Nancy0611/wc 一:项目相关要求 该项目能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功 ...
- Java动态代理(三)——模拟AOP实现
以下案例模拟AOP实现 目录结构 接口PersonService package com.ljq.service; public interface PersonService { public vo ...
- 点滴笔记(二):利用JS对象把值传到后台
记得以前刚写asp.net 从前台往后台传值 都是var data=A,B,C,D,E; 循环添加用逗号隔开 后台还要被测试测出只输入,就错了 哈哈..后来用✈◆类似的符号隔开 不是长久之计... 现 ...
- Android-解析JSON数据(JSON对象/JSON数组)
在上一篇博客中,Android-封装JSON数据(JSON对象/JSON数组),讲解到Android真实开发中更多的是去解析JSON数据(JSON对象/JSON数组) 封装JSON的数据是在服务器端进 ...