物化视图(Material View)是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照(类似于MSSQL Server中的Snapshot,静态快照)。
对于复制,物化视图允许用户在本地维护远程数据的副本,这些副本是只读的。如果用户想修改本地副本,必须用高级复制的功能。当用户想从一个表或视图中抽取数据时,用户可以用从物化视图中抽取。对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。
物化视图和视图类似,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图。
物化视图主要分为两类:
- 用于数据复制的物化视图:物化视图的一个主要功能就是用于数据的复制,Oracle推出的高级复制功能分为两个部分,多主复制和物化视图复制。而物化视图复制就是利用了物化视图的功能。物化视图复制包含只读物化视图复制、可更新物化视图复制和可写物化视图复制。
- 用于预计算的物化视图:这种类型的物化视图一般用于数据仓库系统。主要用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。这种物化视图还经常使用查询重写机制,这样不需要修改原有的查询语句,Oracle会自动选择合适的物化视图进行查询,完全对应用透明。这种物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。
资料来源:
Oracle 物化视图 https://www.linuxidc.com/Linux/2017-08/146161.htm
杨少军, 范金存, 李庆忠. 数据仓库中物化视图的选择[J]. 计算机应用, 2003(09):60-62.
王新军, 洪晓光, 王海洋, et al. 数据仓库中多数据源物化视图的一种有效更新算法[J]. 计算机研究与发展, 2004(05):107-112.