物化试图
来源:互联网 发布:php入门知识 编辑:程序博客网 时间:2024/05/02 04:54
视图是数据库系统中的一个比较简单的概念,它又被称为续表。之所以称它为虚表,是因为它不是存储的实际的数据,而是存储的得到该视图的查询语句。如果查询的定义包含很复杂的表连接、集合函数等等运算内容是,获取视图内容会变得很慢。对这个问题,在现代的数据库管理系统中,都采用了一种空间换时间的解决办法-物化视图。从这个名字都大致可以猜出他的定义。他是一个实际存储数据的视图,不再是原来所说的一个虚表。过去常常以一个基表代替视图,用触发器维护新基表于源表的一致性。在Oracle和SQL Server中这种技术被称为物化视图,而在DB2中称为实例化查询表。
在Oracle中,物化试图的前身是概要表管理和快照功能。物化视图的主要特性是:当基本表中的数据变化时,物化视图中的数据也会相应更新。物化视图中的数据也可以被更改,且改动能反映到基表中。物化视图为查询优化器提供了更好的查询路径。
要保持物化视图存储的数据为最新数据,需要有同步机制。Oracle提供了三种方式来维护同步:完全刷新(“refresh” complete)、增量刷新(“refresh” fast)、部分刷新(“refresh” force)。它们都可以在创建物化视图的时候指定。完全刷新指当要同步数据时,重新生成整个视图。增量刷新是仅将基本表已经修改的数据行更新到物化视图中。部分刷新可以指DBMS优先选择增量刷新,否则用完全刷新。除了刷新方式以外,数据库管理系统还要选择刷新的时间:刷新的时间可以是事务提交的时候刷新、根据需要刷新或者是指定刷新间隔时间。
在Oracle中创建物化视图的命令如下:
CREATE MATERIALIZED VIEW view_name
build immediate “refresh” force on demand for update enable query rewrite
AS select * from temp_table
build immediate “refresh” force指明了物化视图的更新方式,on demand for update指明了物化视图更新的时间。
物化视图的优点:减少磁盘I/O、减少CPU消耗、加快响应时间。
物化视图的缺点:可能需要更多的磁盘空间、数据同步给系统带来负担。
例如:
主系统创建物化视图的日志:create materialized view log on SEXPORTPDF with primary key, rowid, sequence including new values;
网上服务创建视图 :create materialized view MV_SEXPORTMANIFEST
refresh fast on demand
start with to_date('19-07-2011 16:21:31', 'dd-mm-yyyy hh24:mi:ss') next /*1:Mins*/ sysdate + 1/(60*24)
as
select * from SEXPORTMANIFEST @LNK_HY3UAT;
单表刷新:EXEC dbms_mview.refresh('MV_SEXPORTMANIFEST')
刷新组: exec DBMS_REFRESH.MAKE(name => 'mview_refresh_group_FF',list => '',next_date => SYSDATE, interval => '/*1:Mins*/ sysdate + 1/ (60*24)',implicit_destroy => FALSE,lax => FALSE,job => 0,rollback_seg => NULL,push_deferred_rpc => FALSE,refresh_after_errors => TRUE,purge_option => NULL,parallelism => NULL,heap_size => NULL);
);
exec dbms_refresh.add(name => 'mview_refresh_group_FF', list => 'MV_SEXPORTMANIFEST');
- 物化试图
- ORACLE物化视图--实体化试图(Materialized View)介绍
- ORACLE物化视图--实体化试图(Materialized View)介绍
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- 物化视图
- C与MATLAB编程
- Oracle Form 导出Excel代码
- 大IO操作引起ksearch性能波动的问题分析
- JSP页面设置刷新时不从缓存载入
- 程序员的灯下黑:坚持和良好心态近乎道(转)
- 物化试图
- HDU 2196 Computer
- 线性表(顺序sqlist.c)
- 哈哈,我开始使用微博了
- linux下安装*.tar.gz和*.tar.bz2
- 利用Xdebug分析PHP程序,找出性能瓶颈
- 计算几何收尾总结
- USING INDUCTION TO DESIGN 使用归纳法设计算法 [11/14]
- 怎么泡妞