--物化视图可以分为三种类型:
* 包含聚集的物化视图
* 只包含连接的物化视图
* 嵌套物化视图
三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。

--物化视图创建方式(Build Methods),包括BUILD IMMEDIATE和BUILD DEFERRED两种。
* BUILD IMMEDIATE是在创建物化视图的时候就生成数据,
* BUILD DEFERRED则在创建时不生成数据,以后根据需要在生成数据。
默认为BUILD IMMEDIATE。

--物化视图查询重写(Query Rewrite),包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE两种。
分别指出创建的物化视图是否支持查询重写。
查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视
图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图
中读取数据。默认为DISABLE QUERY REWRITE。

在建立物化视图的时候可以指定ORDER BY语句,使生成的数据按照一定的顺序进行保存。不
过这个语句不会写入物化视图的定义中,而且对以后的刷新也无效。

--物化视图数据的刷新模式:
 仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,
以保证和基表数据的一致性;
 基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据
和基表一致
二者的区别在于刷新方法的不同。

--刷新的方法有四种:FAST、COMPLETE、FORCE和NEVER。
FAST刷新采用增量刷新,只刷新自上次刷新以后进行的修改。
COMPLETE刷新对整个物化视图进行完全的刷新。
如果选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。
NEVER指物化视图不进行任何刷新。

--物化视图日志
如果需要进行'快速刷新',则需要建立物化视图日志。
物化视图日志根据不同物化视图的快速刷新的需要,可以建立为ROWID或PRIMARY KEY类型的。
还可以选择是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。
可以指明ON PREBUILD TABLE语句将物化视图建立在一个已经存在的表上。这种情况下,物化
视图和表必须同名。当删除物化视图时,不会删除同名的表。这种物化视图的查询重写要求参
数QUERY_REWRITE_INTEGERITY必须设置为trusted或者stale_tolerated。

--物化视图分区
基于分区的物化视图可以支持分区变化跟踪(PCT)。具有这种特性的物化视图,当基表进行了分
区维护操作后,仍然可以进行快速刷新操作。对于聚集物化视图,可以在GROUP BY列表中使用
CUBE或ROLLUP,来建立不同等级的聚集物化视图。

--物化视图的手工刷新:
刷新指定的物化视图
execute dbms_mview.refresh('MV_TEST'); 
刷新利用了该表的所有物化视图
execute dbms_mview.refresh_defresh_dependent('TEST'); 
刷新该模式中,自上次刷新以来,未得到刷新的所有物化视图
execute dbms_mview.refresh_all_mviews;

--物化视图的特点:
* 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表);
* 物化视图也是一种段(segment),所以其有自己的物理存储属性;
* 物化视图会占用数据库磁盘空间;

--设置init.ora的参数:
使用物化视图:
JOB_QUEUE_PROCESSES,必须设置大于 1。
QUERY_REWRITE_ENABLED,设置为TRUE时,允许动态重写查询。
QUERY_REWRITE_INTEGRITY,确定访问物化视图时数据一致性要遵守的程度。
OPTIMIZER_MODE,必须设置成CBO的某种方式。
禁用物化视图:
修改init.ora参数的query_rewrite_enabled参数设置成flase,重启实例。
使用alter system set query_rewrite_enabled = flase;动态修改。
使用alter session set query_rewrite_enabled = flash;修改会话内。
使用 norewrite提示。

--------------------------------------------------------------------------------------
源宿主:y,目标宿主:m
1、源表
create table y.test(id varchar2(10) primary key ,name varchar2(20));
2、物化视图日志
创建:
create materialized view log on y.test [tablespace MV_DATA WITH ROWID, sequence(seq_tid)];
删除:
drop materialized view log on test;
2、物化视图
创建:
  CREATE MATERIALIZED VIEW m.mv_test [tablespace mview_data]
 BUILD IMMEDIATE
 REFRESH FORCE 
 ON DEMAND  --刷新模式,默认值,可以不写
 START WITH SYSDATE
 NEXT SYSDATE+2/1444
 WITH PRIMARY KEY
 DISABLE QUERY REWRITE  --查询重写,默认值,可以不写
 AS
 SELECT * FROM y.test;
删除:
  drop materialized view m.mv_test;

Oracle物化视图梳理的更多相关文章

  1. Oracle 物化视图 说明

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

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

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

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

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

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

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

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

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

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

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

  7. ORACLE物化视图具体解释

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

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

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

  9. oracle物化视图

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

随机推荐

  1. websocket 二合一

    server from flask import Flask, request, render_template from geventwebsocket.handler import WebSock ...

  2. 鼠标右键vsCode打开

    有时候在安装vscode不会出现鼠标右键用vscode打开的情况: 最终要实现的样子: 解决办法如下步骤: 1.安装vscode: 2.新建一个“.reg”为后缀的文件: 3.把下面内容复制到文件中: ...

  3. Html table、thead、tr、th、td 标签

    Html table.thead.tr.th.td 标签 案例一 <!-- table 表格标签,配置表格使用.border="1" 添加表格框架 --> <ta ...

  4. oracle 11.2 asynch descriptor resize等待事件

    asynch descriptor resize描述最近部分insert /*+ append */语句出现该等待时间,经查This event is set when the number of a ...

  5. 【题解】Luogu P2763 试题库问题

    原题传送门 这题很简单啊 从源点向k类题目分别连流量为所需数量的边 从每道题向汇点连一条流量为1的边(每题只能用1次) 从类型向对应的题目连一条流量为1的边 跑一遍最大流 如果最大流小于所需题目数量, ...

  6. msf下的各种生成payload命令

    Often one of the most useful (and to the beginner underrated) abilities of Metasploit is the msfpayl ...

  7. 牛客-数据库SQL实战

    查找最晚入职员工的所有信息 CREATE TABLE `employees` ( `emp_no` ) NOT NULL, `birth_date` date NOT NULL, `first_nam ...

  8. el-checkbox遇到的问题

    在官网中有实例 <template> <el-checkbox :indeterminate="isIndeterminate" v-model="ch ...

  9. 启动xampp出错,Port 80 in use by "Unable to open process" with PID 4!

    启动xampp出错,Port 80 in use by "Unable to open process" with PID 4! 环境:windows10 80端口被PID为4的应 ...

  10. 理解SSL、HTTPS原理中的对称加密与非对称加密

    1.对称性加密 双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密. 简单来说就是:加密与解密都是同一个秘钥.   优点:通常在消息发送方需要加密大量数据时使用,算 ...