序号 | 术语/缩略语 | 全称和说明 |
---|---|---|
1 | 物化视图(Materialized View) | 物化视图用来存储数据副本或集合,能够用来复制本地或远程表的所有或者部分,或者复制对多个表的查询结果。物化视图可根据须要自动完成复制数据的自动刷新。 |
2.1 表关联的物化视图,若是使用fast刷新模式,只能用基于rowid的物化视图。 数据库
这是MV的技术限制要求。 jsp
2.2 不容许使用On Commit的刷新模式,须使用On Demand的模式进行刷新工做。 性能
为不影响数据库的性能,不容许使用On Commit的刷新模式,由于若是使用On Commit的刷新模式数据库会将物化视图的刷新操做做为Commit事务处理的一部分来执行,从而增长了Commit完成的时间。 spa
2.3 On demand refresh方式的MV,不容许使用START WITH的自动刷新模式,要求自行开发用于物化视图刷新的JOB。 设计
为了便于管理,要求自行开发用于物化视图刷新的JOB,并设置定时调度来代替物化视图的自动刷新功能。为刷新工做建立的JOB要遵照《JOB管理规范》。 日志
2.4 不容许使用Force Refresh方式。 code
Force Refresh方式Oracle自动判断是否知足Fast刷新条件,若是知足则进行Fast刷新,不然进行Complete刷新,使用Force Refresh方式带有不肯定性,所以不容许使用Force Refresh方式。 对象
2.5 除了初始化数据和大的维护工做外,不能使用Complete Refresh方式,只能使用Fast Refresh方式。 索引
因为Complete Refresh方式会将表清空后从新复制数据,将占用大量的资源。所以除了初始化数据或者是很大的维护工做外,物化视图不容许采用Complete方式进行刷新。 事务
2.6 若是存在预建表,且预建表再没有其余的用途,在删除物化视图时,须要同时删除预建表。若想不删除,需申请例外。
使用预建表方式建立的物化视图,在删除物化视图后,所建的同名的预建表不会自动删除,还能够进行查询操做,所以须要手动进行删除。
drop materialized view 属主.物化视图名; drop table 属主.预建表名;
drop materialized view olapdata.CAL_MONTH_SALES_MV; drop table olapdata.CAL_MONTH_SALES_MV;
2.7 删除物化视图时,若是是快速刷新的物化视图,须要同时删除物化视图日志。
在使用快速刷新时,须要建立基于物化视图的日志表,所以在删除物化视图时,同时须要删除此日志表。
注意:对于物化视图和物化视图日志表不在同一个数据库的状况,在删除物化视图和物化视图日志表时,须要链接到相应的数据库删除对应的对象。
若是物化视图和物化视图日志表是不一样的Schema,在删除物化视图和物化视图日志表时,须要以不一样的Schema用户登陆并删除,或临时授予删除权限。
drop materialized view log on 表属主.表名;
drop materialized view log on olapdata.cal_month_sales;
2.8 为了保证mview可以进行fast refresh,需在Materialized View Log建立时加入sequence参数。
sequence的做用在于肯定dml操做的前后顺序,当对于多表进行mixed dml操做时,涉及到join+aggregate类型的mv要进行fast refresh则需设置sequence的关键字。