- 浏览: 138325 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 5426文章不错,解除疑惑,oracle10G0204可以实现远程导入 ... -
oracle中ddl不能回滚的问题【转载】
2012-11-27 10:25 1101原文地址: http://www.2cto.com/datab ... -
No startup acknowledgement from forked process after 30 seconds
2012-11-22 11:20 1709摘抄2篇文章。都是这个问题的描述,结果都是没有办法解决,直接重 ... -
oracle在linux下安装遇到的所有的问题总结说明(3)
2012-10-30 15:48 1314大部分内容为已经遇到过的问题解决方案,基本都是谷歌出来的,留下 ... -
oracle on linux非官方做法遇到的问题集锦(1)
2012-10-30 15:44 17501、安装oracle linux 6.2创 ... -
oracle在linux下安装遇到的所有的问题总结说明(2)(20121122修改)
2012-10-30 15:35 2100安装的时候遇到的问题说明(部分内容 ... -
oracle在linux下安装遇到的所有的问题总结说明(1)
2012-10-30 15:31 1340安装oracle 官方文档,翻译说明( ... -
ora-12542 address in used(转载)
2012-06-16 16:51 1609转载的,原作者网址:http://space.itpub.ne ... -
EXP-00091 Exporting questionable statistics
2012-06-15 20:02 1202http://space.itpub.net/trackbac ... -
《转载》oracle绑定变量详解
2012-05-11 10:18 859原文转载自linuxg公社 http://www.linuxi ... -
oracle9I坏块错误
2012-05-10 18:41 864在一个客户的9201 for Windows数据库中发现了 ... -
《转载》ora-00020超出最大进程数
2012-05-10 18:42 1002纯属学习查询资料,没什么说的,当资料了,感谢作者,转载无罪 ... -
《转载》oracle1000问
2012-05-10 18:42 784没什么说的,比较适合初学者的,呵呵,一块学习吧。 -
《转载》韩顺平-玩转oracle视频教材笔记(文档)
2012-05-10 18:42 1009转载的,那下载的,忘了,全名叫oracle10G从入门到精 ... -
ora-27100shared memory realm already exists(20120529修改)
2012-05-10 18:42 2292这个问题一般情况下,是因为调整内存参数的时候出现问题了,而且数 ... -
FATAL ERROR IN TWO-TASK SERVER: error = 12571
2012-05-11 10:18 1208这个问题貌似是因为应用程序和数据库在连接的时候出现各种意外 ... -
ora-12516监听程序找不到符合协议堆栈要求的可用处理程
2012-05-11 10:19 10044oracle服务器上某个数据库出现' ORA-12516: T ... -
ora-02095无法修改指定的初始化参数
2012-05-11 10:19 19157说个题外话,话说我在查找一些oracle报错的时候,最容易 ... -
ora-01261错误解析
2012-05-11 10:19 2039ORA-01261: Parameter string des ... -
《转载》OEM启动时候需要设置的主机登录
2012-05-21 13:56 775转载的,什么情况,忘了当初什么情况了,反正是这个问题,也有这个 ...
相关推荐
本文主要介绍了利用ORACLE物化视图建立报表数据库的方法和原理。报表数据库是指独立于生产数据库的数据库,用于存储和管理报表数据。通过建立报表数据库,可以实现工作负荷的隔离,满足两种业务处理的需求,并为过渡...
### Oracle物化视图介绍及应用详解 #### 一、物化视图概念与作用 在Oracle数据库中,物化...总之,Oracle物化视图是提高查询性能的有效工具之一,但其设计和使用需要根据具体的应用场景和需求进行仔细考虑和规划。
### ORACLE使用物化视图和查询重写功能 #### 一、概述 在Oracle数据库中,物化视图和查询重写功能是提高查询效率和简化数据仓库管理的重要工具。物化视图是一种预计算的数据集合,它可以存储查询的结果集,而查询...
创建主键物化视图时,Oracle会使用主键来唯一标识记录,从而支持增量刷新。 - **示例**: ```sql CREATE MATERIALIZED VIEW mv_emp_pk REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 1/48 WITH PRIMARY ...
Oracle物化视图是Oracle数据库中一种非常重要的特性,它提供了数据的一致性视图,通常用于实现数据的异步复制。本配置指导书主要针对Oracle高级复制中的物化视图,旨在帮助用户理解并成功配置物化视图,以满足在实际...
默认情况下,如果在创建物化视图时未指定刷新策略,Oracle将使用FORCE和DEMAND。 2. ON COMMIT物化视图:与ON DEMAND不同,这种类型的物化视图会在基表发生COMMIT操作时立即刷新,确保物化视图的数据总是最新的。...
Oracle的物化视图是一种数据库对象,它存储了查询结果,从而提供了一种高效的数据访问方式。物化视图的主要目标是提升查询性能,尤其是在处理复杂查询、连接操作或聚合计算时。它们在数据仓库环境中尤其有用,因为...
【标题】中的“基于ORACLE物化视图的电力营销系统优化”指的是使用ORACLE数据库中的物化视图技术来提升电力营销系统的性能和效率。电力营销系统是电力企业管理和销售电能的关键工具,它涉及审批、核算、收费、设备...
### 物化视图在Oracle数据仓库中的应用与优化 #### 一、引言 在当今数据驱动的时代背景下,企业越来越依赖于数据仓库来进行决策支持系统(DSS)的构建,以便更好地理解业务趋势并做出战略性的分析。数据仓库的设计...
在使用物化视图时,还需要注意一些问题。首先,物化视图会占用额外的存储空间,因此需要考虑数据库的整体容量规划。其次,物化视图的维护可能会增加数据库的复杂性,特别是当有多个物化视图或复杂的更新逻辑时。最后...
6. **使用其他方法创建物化视图**: - 如果无法解决ROWID的问题,可以考虑创建不包含ROWID的物化视图。 - 或者采用其他优化策略来提高查询性能。 #### 实际操作示例 假设我们尝试创建如下的物化视图: ```sql ...
2. **查询重写**:启用查询重写选项(ENABLE QUERY REWRITE)后,Oracle可以自动检测到查询是否可以通过物化视图来优化,并在后台透明地使用物化视图的预计算结果,提高查询速度。 在Oracle 10g之前,管理和优化...
7. **优化动态视图**:分析视图查询性能问题,提供索引策略、物化视图和查询重构等优化技巧。 8. **异常处理与错误调试**:介绍处理视图操作过程中可能出现的错误,以及如何进行有效的调试。 9. **实战案例**:...
### 使用物化视图和EXP实现生产库的逻辑实时备份 #### 一、概述 本文主要探讨了如何利用Oracle数据库中的物化视图技术和逻辑备份工具`exp`来实现生产库个别表的实时数据刷新与备份。这种方法不仅能够确保数据的...
物化视图是大型Oracle数据库中提高查询性能的关键技术之一。随着网络信息量的快速增长和电子商务的蓬勃发展,数据库系统的性能要求随之提升。在处理大量数据时,传统的查询方法可能无法及时响应用户的查询请求,尤其...
【Oracle物化视图】:Oracle物化视图是一种预计算的数据存储结构,它存储了查询结果集,类似于数据库中的一个快照。物化视图可以用来提高查询性能,特别是当查询涉及复杂联接、聚合操作或者从远程数据库中获取数据时...
本调研报告主要关注Oracle中的高级复制功能,特别是物化视图(Materialized Views)的应用和实现。物化视图是Oracle数据库提供的一种强大工具,用于提高查询性能和简化数据分发。 1. **物化视图的基本概念**: - ...
在MySQL中,由于不直接支持物化视图,我们可以使用触发器来模拟Oracle的物化视图功能。下面将详细介绍如何使用MySQL触发器来实现类似的功能。 首先,我们需要创建两个表:基表`Orders`和物化视图表`Order_mv`。`...
在Oracle中,还可以创建物化视图,这种视图会预先计算并存储结果,适用于需要定期更新且查询频繁的数据。物化视图的刷新可以是手动的,也可以设置为自动定时刷新,以保持数据的实时性。 总的来说,Oracle视图是...
### 学习分区表、索引、物化视图的使用 #### ORACLE分区表分类及应用场景 在Oracle数据库中,分区技术是一项重要的优化手段,主要用于处理大型表以提高查询性能和管理效率。分区表根据数据分布的不同特性分为几种...