预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1简介物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。物化视图可以查询表,视图和其它的物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相通的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图更可以实现视图的所有功能,而物化视图确不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用。本篇我们将会看到怎样创建物化视图并且讨论它的刷新选项。2物化视图语法creatematerializedview[view_name][[buildimmediate|builddeferred][enablequeryrewrite|disablequeryrewrite][refresh[fast|complete|force|nevel]][ondemand|commit][startwithdate][nextdate][with{primarykey|rowid}]]as{创建物化视图用的查询语句}BuildMethods(创建方式)属性名描述Build创建物化视图的时候就生成数据。immediateBuild创建物化试图式不生成数据,以后根据需要生成数据。默认为deferredbuilddeferred.QueryRewrite(查询重写)查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。默认为DISABLEQUERYREWRITE。属性名描述Enablequery支持查询重写。rewriteDisable不支持查询重写,默认Disablequeryrewrite。queryrewriteRefresh属性(刷新方式)属性名描述fast用物化视图日志(参照上面所述)来发送主表已经修改的数据行到物化视图中.如果指定refreshfast子句,那么应该对主表创建物化视图日志。creatematerializedviewlogon(主表名)complete完全刷新重新生成整个视图,如果请求完全刷新,oracle会完成完全刷新即使增量刷新可用。force当指定FORCE子句,如果增量刷新可用Oracle将完成增量刷新,否则将完成完全刷新,如果不指定刷新方法(FAST,COMPLETE,orFORCE),Force选项是默认选项。Nevel指物化视图不进行任何刷新。OnDemandAndCommit属性(刷性机制)属性名描述ondemand指物化试图用户需要的时候进行试图数据更新,可以手动通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新。默认ondemand。commit指物化视图在对基表的DML操作提交的同时进行刷新。刷新时间控制属性名描述Startwith通知数据库完成从主表到本地表第一次复制的时间。dateNextdate下一次刷新时间控制。根据基表主键或rowid创建属性名描述Withprimary生成主键物化视图,也就是说物化视图是基于主表的主键,为了key生成PRIMARYKEY子句,应该在主表上定义主键,否则应该用基于ROWID的物化视图。PRIMARYKEY是默认选项。主键物化视图允许识别物化视图主表而不影响物化视图增量刷新的可用性。Withrowidrowid物化视图只有一个单一的主表,不能包括下面任何一项:1.Distinct或者聚合函数。2.Groupby,子查询,连接和SET操作。3演示例子3.1建立物化视图日志creatematerializedviewlogonmv_lvy_levytaxbgtdivtablespacezgmv_date--日志保存在特定的表空间withrowid;creatematerializedviewlogontb_lvy_levydetaildatatablespacezgmv_date--日志保存在特定的表空间withrowid,sequence(levydetaildataid);creatematerializedviewlogontb_lvy_levydatatablespa