基本介绍¶
物化视图,它是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,从而快速的得到结果。使用物化视图的目的是为了提高查询性能。物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL 语句的正确性和有效性。物化视图需要占用存储空间,当基表发生变化时,物化视图也应当刷新。
神通数据库目前支持的物化视图功能介绍如下:
数据填充方式
BUILD IMMEDIATE:指在创建物化视图的时候就生成数据,默认为BUILD IMMEDIATE。
BUILD DEFERRED:指在创建时不生成数据,以后根据需要再生成数据。
刷新模式
ON COMMIT:指物化视图在对基表的DML操作提交的同时进行刷新。
ON DEMAND:指物化视图在用户需要的时候进行刷新,可以通过refresh materialized view方法来进行手动刷新。
刷新方式
FAST:快速刷新是一种比完全刷新快的多的刷新方式,快速刷新只刷新自上次刷新以来修改的数据,因为快速刷新所要操作的数据量少,多数情况下使用这种方法能大大的节省时间.快速刷新要求在基表上面有物化视图日志。而且查询语句需要满足以下条件:
- 物化视图不能包含DISTINCT、子查询、GROUP BY、聚集函数、SET操作、视图、Order...By、Limit、Offset、SubLink、From子句不能有函数;
物化视图不能包含不重复表达式的引用(volatile function)即易变函数;
快速刷新时,物化视图的所有主表上必须存在日志,并且所有日志表中均存在物化视图上次刷新之前的记录。
COMPLETE:对整个物化视图进行完全刷新。当主表的更新数据超过总数据的一半时,建议使用完全刷新。
FORCE:刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。 其实就是一个快速刷新和完全刷新的结合体。