- 浏览: 135359 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (52)
- oracle linux R6-U2-server-i386 (8)
- oracleDBA (25)
- 虚拟机-vmware-8.0.2 (2)
- linux-ubuntu (0)
- oracle背景资料 (28)
- DOS (3)
- sql常用操作 (2)
- win7/XP/03/08/2K/ (1)
- NT系统优化 (2)
- 网络 (1)
- 安全 (0)
- 乌七杂八资料库 (23)
- 个人心情 (2)
- ESXI 4.1 (1)
- vsphere5.0 (4)
- rac (3)
- oracle linux R6-U2-server-i386,oracle9204 (2)
- 条件处理符号 (1)
- 批处理 (2)
最新评论
-
yexiaochong:
我从头到尾看完了。写得也挺有道理的。我也类似你一样。花了不止两 ...
工作意向及规划个人建议 -
netkiller.github.com:
写的真多,实在看不下去了,支持一下
工作意向及规划个人建议
本文转载自乔文《oracle物化视图的一般用法》
物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。
1、物化视图的类型:ON DEMAND、ON COMMIT
二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
2、ON DEMAND物化视图
物化视图的创建本身是很复杂和需要优化参数设置的,特别是针对大型生产数据库系统而言。但Oracle允许以这种最简单的,类似于普通视图的方式来做,所以不可避免的会涉及到默认值问题。也就是说Oracle给物化视图的重要定义参数的默认值处理是我们需要特别注意的。
物化视图的特点:
(1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证;
(2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;
(3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证;
创建语句:create materialized view mv_name as select * from table_name
默认情况下,如果没指定刷新方法和刷新模式,则Oracle默认为FORCE和DEMAND。
物化视图的数据怎么随着基表而更新?
Oracle提供了两种方式,手工刷新和自动刷新,默认为手工刷新。也就是说,通过我们手工的执行某个Oracle提供的系统级存储过程或包,来保证物化视图与基表数据一致性。这是最基本的刷新办法了。自动刷新,其实也就是Oracle会建立一个job,通过这个job来调用相同的存储过程或包,加以实现。
ON DEMAND物化视图的特性及其和ON COMMIT物化视图的区别,即前者不刷新(手工或自动)就不更新物化视图,而后者不刷新也会更新物化视图,——只要基表发生了COMMIT。
创建定时刷新的物化视图:create materialized view mv_name refresh force on demand start with sysdate
next sysdate+1 (指定物化视图每天刷新一次)
上述创建的物化视图每天刷新,但是没有指定刷新时间,如果要指定刷新时间(比如每天晚上10:00定时刷新一次):create materialized view mv_name refresh force on demand start with sysdate next to_date( concat( to_char( sysdate+1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh24:mi:ss')
3、ON COMMIT物化视图
ON COMMIT物化视图的创建,和上面创建ON DEMAND的物化视图区别不大。因为ON DEMAND是默认的,所以ON COMMIT物化视图,需要再增加个参数即可。
需要注意的是,无法在定义时仅指定ON COMMIT,还得附带个参数才行。
创建ON COMMIT物化视图:create materialized view mv_name refresh force on commit as select * from table_name
备注:实际创建过程中,基表需要有主键约束,否则会报错(ORA-12014)
4、物化视图的刷新
刷新(Refresh):指当基表发生了DML操作后,物化视图何时采用哪种方式和基表进行同步。刷新的模式有两种:ON DEMAND和ON COMMIT。(如上所述)
刷新的方法有四种:FAST、COMPLETE、FORCE和NEVER。FAST刷新采用增量刷新,只刷新自上次刷新以后进行的修改。COMPLETE刷新对整个物化视图进行完全的刷新。如果选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。NEVER指物化视图不进行任何刷新。
对于已经创建好的物化视图,可以修改其刷新方式,比如把物化视图mv_name的刷新方式修改为每天晚上10点刷新一次:alter materialized view mv_name refresh force on demand start with sysdate next to_date(concat(to_char(sysdate+1,'dd-mm-yyyy'),' 22:00:00'),'dd-mm-yyyy hh24:mi:ss')
5、物化视图具有表一样的特征,所以可以像对表一样,我们可以为它创建索引,创建方法和对表一样。
6、物化视图的删除:
虽然物化视图是和表一起管理的,但是在经常使用的PLSQL工具中,并不能用删除表的方式来删除(在表上右键选择‘drop’并不能删除物化视图),可以使用语句来实现:drop materialized view mv_name
发表评论
-
oracle 10g 使用expdp network_link导出远程数据库到本地文件 【转载】
2012-12-11 13:45 5323文章不错,解除疑惑,oracle10G0204可以实现远程导入 ... -
oracle中ddl不能回滚的问题【转载】
2012-11-27 10:25 1062原文地址: http://www.2cto.com/datab ... -
No startup acknowledgement from forked process after 30 seconds
2012-11-22 11:20 1649摘抄2篇文章。都是这个问题的描述,结果都是没有办法解决,直接重 ... -
oracle在linux下安装遇到的所有的问题总结说明(3)
2012-10-30 15:48 1275大部分内容为已经遇到过的问题解决方案,基本都是谷歌出来的,留下 ... -
oracle on linux非官方做法遇到的问题集锦(1)
2012-10-30 15:44 16981、安装oracle linux 6.2创 ... -
oracle在linux下安装遇到的所有的问题总结说明(2)(20121122修改)
2012-10-30 15:35 2042安装的时候遇到的问题说明(部分内容 ... -
oracle在linux下安装遇到的所有的问题总结说明(1)
2012-10-30 15:31 1262安装oracle 官方文档,翻译说明( ... -
ora-12542 address in used(转载)
2012-06-16 16:51 1549转载的,原作者网址:http://space.itpub.ne ... -
EXP-00091 Exporting questionable statistics
2012-06-15 20:02 1154http://space.itpub.net/trackbac ... -
《转载》oracle绑定变量详解
2012-05-11 10:18 816原文转载自linuxg公社 http://www.linuxi ... -
oracle9I坏块错误
2012-05-10 18:41 832在一个客户的9201 for Windows数据库中发现了 ... -
《转载》ora-00020超出最大进程数
2012-05-10 18:42 947纯属学习查询资料,没什么说的,当资料了,感谢作者,转载无罪 ... -
《转载》oracle1000问
2012-05-10 18:42 703没什么说的,比较适合初学者的,呵呵,一块学习吧。 -
《转载》韩顺平-玩转oracle视频教材笔记(文档)
2012-05-10 18:42 967转载的,那下载的,忘了,全名叫oracle10G从入门到精 ... -
ora-27100shared memory realm already exists(20120529修改)
2012-05-10 18:42 2238这个问题一般情况下,是因为调整内存参数的时候出现问题了,而且数 ... -
FATAL ERROR IN TWO-TASK SERVER: error = 12571
2012-05-11 10:18 1167这个问题貌似是因为应用程序和数据库在连接的时候出现各种意外 ... -
ora-12516监听程序找不到符合协议堆栈要求的可用处理程
2012-05-11 10:19 9945oracle服务器上某个数据库出现' ORA-12516: T ... -
ora-02095无法修改指定的初始化参数
2012-05-11 10:19 19066说个题外话,话说我在查找一些oracle报错的时候,最容易 ... -
ora-01261错误解析
2012-05-11 10:19 1978ORA-01261: Parameter string des ... -
《转载》OEM启动时候需要设置的主机登录
2012-05-21 13:56 742转载的,什么情况,忘了当初什么情况了,反正是这个问题,也有这个 ...
相关推荐
ORACLE 中的物化视图在大量的报表查询中使用平凡,本文介绍了物化视图的原理和使用方法,觉得不错。
第24章 使用物化视图 第25章 使用Oracle Text进行文本搜索 第26章 使用外部表 第27章 使用回闪查询 第28章 回闪:表和数据库 第Ⅳ部分 Pl/SQL 第29章 PL/SQL简介 第30章 触发器 第31章 过程、函数与程序包 第32章 ...
7.4.2 物化视图的使用 133 7.4.3 物化视图的数据加载 135 7.4.4 物化视图的数据更新 135 7.4.5 查询重写 136 7.5 本章小结 136 7.6 本章实例 137 7.7 习题 137 第8章 函数与存储过程(教学视频:48分钟) ...
3.怎么样使用物化视图来同步数据 4.怎么样在线创建索引或者重构索引/表 5.怎么样编译失效对象 6.怎么样在管理自动undo表空间 7.怎么样管理临时表空间与临时文件 8.怎么样管理分区表与分区索引 9.怎么样管理LOB...
<br>5、开发时直接使用Rolap测试数据就行了,analysis workspace是使用物化视图模拟Molap,两者在开发编程方面完全一致,而后者还额外需要一些处理步骤才能够被Java Olap API访问到,不必麻烦。 <br>
10.5 使用物化视图进行翻页性能调整 514 10.5.1 系统环境 514 10.5.2 问题描述 514 10.5.3 捕获排序SQL语句 515 10.5.4 确定典型问题SQL 515 10.5.5 选择解决办法 517 10.5.6 进一步的调整优化 518 ...
7.6 使用Oracle Data Pump Export 191 7.7 使用Oracle Data Pump Import 195 7.8 使用传统的导入和导出 200 7.9 Recovery Manager简介 201 7.9.1 RMAN的体系结构 201 7.9.2 设置恢复目录和目标数据库 203 7.9...
其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),...
2.10 使用物化视图进行查询重写 44 2.11 确定执行计划 46 2.12 执行计划并取得数据行 50 2.13 SQL执行——总览 52 2.14 小结 53 第3章 访问和联结方法 55 第4章 SQL是关于集合的 95 第5章 关于问题 116 第6章 SQL...
第26章 使用物化视图 第27章 使用oracle text 进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪回:表和数据库 第31章 sql 重放 第ⅳ部分 pl/sql 第32章 pl/sql 简介 第33章 应用程序...
第26章 使用物化视图 第27章 使用Oracle Text进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪问:表和数据 第31章 SQL重放 第Ⅳ部分 PL/SQL 第32章 PL/SQL简介 第33章 应用程序在线升级 第34章 ...
第26章 使用物化视图 第27章 使用Oracle Text进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪问:表和数据 第31章 SQL重放 第Ⅳ部分 PL/SQL 第32章 PL/SQL简介 第33章 应用程序在线升级 第34章 ...
2.10 使用物化视图进行查询重写 44 2.11 确定执行计划 46 2.12 执行计划并取得数据行 50 2.13 SQL执行——总览 52 2.14 小结 53 第3章 访问和联结方法 55 3.1 全扫描访问方法 55 3.1.1 如何选择全扫描操作 56...
3.3 物化视图压缩 3 3.4 分区表压缩 3 3.5 索引压缩 4 3.6 数据压缩方法 4 4、如何正确压缩数据 5 4.1 压缩数据方法 5 4.2 CTAS数据压缩 5 4.3 insert /*+ append */压缩 6 4.4 alter table …move compress压缩 7 ...
查看用户下所有主键外键引用, Windows环境中Kill掉Oracle线程(orakill),查看有哪些表被锁住,Oracle 官方文档下载,对表收集统计信息,刷新物化视图,Oracle 查看用户权限,Oracle 外连接和 (+)号的用法,多行合并一行
第26章 使用物化视图 第27章 使用oracle text 进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪回:表和数据库 第31章 sql 重放 第ⅳ部分 pl/sql 第32章 pl/sql 简介 第33章 应用程序...
第26章 使用物化视图 第27章 使用oracle text 进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪回:表和数据库 第31章 sql 重放 第ⅳ部分 pl/sql 第32章 pl/sql 简介 第33章 应用程序...
抽象的Oracle提供了多种选择,以帮助表现,如大表分区,使用物化视图,存储计划纲要,等等。本章将探讨数据库管理员如何可以使用这些技术来帮助开发,以增加应用程序代码的效率。本章介绍SQL Tuning Advisor来帮助你...