仓酷云

标题: MYSQL网页设计ORACLE中的物化视图 [打印本页]

作者: 小妖女    时间: 2015-1-16 22:39
标题: MYSQL网页设计ORACLE中的物化视图
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”oracle|视图
ORACLE中的物化视图



物化视图是包含一个查询了局的数据库对像,它是远程数据的的当地正本,大概用来天生基于数据表乞降的汇总表。物化视图存储基于远程表的数据,也能够称为快照。

物化视图能够查询表,视图和别的的物化视图。

一般情形下,物化视图被称为主表(在复制时代)或明细表(在数据堆栈中)。

关于复制,物化视图同意你在当地保护远程数据的正本,这些正本是只读的。假如你想修正当地正本,必需用初级复制的功效。当你想从一个表或视图中抽取数据时,你能够用从物化视图中抽取。

关于数据堆栈,创立的物化视图一般情形下是聚合视图,单一表聚合视图和毗连视图。

本篇我们将会看到如何创立物化视图而且会商它的革新选项。

在复制情况下,创立的物化视图一般情形下主键,rowid,和子查询视图。

1.主键物化视图:

上面的语法在远程数据库表emp上创立主键物化视图

SQL>CREATEMATERIALIZEDVIEWmv_emp_pk

REFRESHFASTSTARTWITHSYSDATE

NEXTSYSDATE+1/48

WITHPRIMARYKEY

ASSELECT*FROMemp@remote_db;

Materializedviewcreated.

注重:当用FAST选项创立物化视图,必需创立基于主表的视图日记,以下:

SQL>CREATEMATERIALIZEDVIEWLOGONemp;

Materializedviewlogcreated.

2.Rowid物化视图

上面的语法在远程数据库表emp上创立Rowid物化视图

SQL>CREATEMATERIALIZEDVIEWmv_emp_rowid

REFRESHWITHROWID

ASSELECT*FROMemp@remote_db;

Materializedviewlogcreated.

3.子查询物化视图

上面的语法在远程数据库表emp上创立基于emp和dept表的子查询物化视图

SQL>CREATEMATERIALIZEDVIEWmv_empdept

ASSELECT*FROMemp@remote_dbe

WHEREEXISTS

(SELECT*FROMdept@remote_dbd

WHEREe.dept_no=d.dept_no)

Materializedviewlogcreated.

REFRESH子句

[refresh[fast|complete|force]

[ondemand|commit]

[startwithdate][nextdate]

[with{primarykey|rowid}]]



Refresh选项申明:

a.oracle用革新办法在物化视图中革新数据.

b.是基于主键仍是基于rowid的物化视图

c.物化视图的革新工夫和距离革新工夫



Refresh办法-FAST子句

增量革新用物化视图日记(参照下面所述)来发送主表已修正的数据行到物化视图中.假如指定REFRESHFAST子句,那末应当对主表创立物化视图日记

SQL>CREATEMATERIALIZEDVIEWLOGONemp;

Materializedviewlogcreated.

关于增量革新选项,假如在子查询中存在剖析函数,则物化视图不起感化。



Refresh办法-COMPLETE子句

完整革新从头天生全部视图,假如哀求完整革新,oracle会完成完整革新即便增量革新可用。



RefreshMethodCFORCE子句

当指定FORCE子句,假如增量革新可用Oracle将完成增量革新,不然将完成完整革新,假如不指定革新办法(FAST,COMPLETE,orFORCE),Force选项是默许选项



主键和ROWD子句

WITHPRIMARYKEY选项天生主键物化视图,也就是说物化视图是基于主表的主键,而不是ROWID(对应于ROWID子句).PRIMARYKEY是默许选项,为了天生PRIMARYKEY子句,应当在主表上界说主键,不然应当用基于ROWID的物化视图.

主键物化视图同意辨认物化视图主表而不影响物化视图增量革新的可用性。

Rowid物化视图只要一个单一的主表,不克不及包含上面任何一项:

nDistinct大概聚合函数.

nGroupby,子查询,毗连和SET操纵



革新工夫

STARTWITH子句关照数据库完成从主表到当地表第一次复制的工夫,应当实时估量下一次运转的工夫点,NEXT子句申明了革新的距离工夫.

SQL>CREATEMATERIALIZEDVIEWmv_emp_pk

REFRESHFAST

STARTWITHSYSDATE

NEXTSYSDATE+2

WITHPRIMARYKEY

ASSELECT*FROMemp@remote_db;

Materializedviewcreated.

在下面的例子中,物化视图数据的第一个正本在创立时天生,今后每两天革新一次.



总结

物化视图供应了可伸缩的基于主键或ROWID的视图,指定了革新办法和主动革新的工夫。


一些典型的RDBMS功能并不总是在DBaaS系统中可用。例如MySQL学习教程,WindowsAzureSQLDatabase(以前的SQLAzure)是微软的DBaaS产品,提供了一个类似于SQLServer的数据库平台。
作者: 活着的死人    时间: 2015-1-25 14:32
财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的..
作者: 仓酷云    时间: 2015-2-2 22:25
至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。
作者: 若天明    时间: 2015-2-8 15:00
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
作者: 莫相离    时间: 2015-2-25 19:21
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
作者: 透明    时间: 2015-3-8 01:35
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
作者: 谁可相欹    时间: 2015-3-15 19:30
记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。
作者: 谁可相欹    时间: 2015-3-15 19:30
然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情
作者: 老尸    时间: 2015-3-22 03:09
总感觉自己还是不会SQL




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2