Oracle中的视图和实例化视图之间有什么区别?
#1楼
物化视图 -磁盘上包含查询结果集的表
非标准化视图 -从基础表中提取数据的查询
#2楼
在Mike McAllister的漂亮回答中加了...
当编译器认为视图查询很简单时,只能将实例化视图设置为通过数据库自动刷新以检测更改。 如果认为它太复杂,它将无法设置本质上是内部触发器的组件来跟踪源表中的更改,从而仅更新mview表中的更改行。
创建实例化视图时,您会发现Oracle同时创建了mview 和具有相同名称的表 ,这会使事情变得混乱。
#3楼
视图:视图只是一个命名查询。 它不存储任何内容。 视图上存在查询时,它将运行视图定义的查询。 实际数据来自表。
物化视图:物理存储数据并定期更新。 查询MV时,它会提供MV中的数据。
#4楼
物化视图是由选择查询驱动的数据逻辑视图,但是查询结果将存储在表或磁盘中,查询的定义也将存储在数据库中。
物化视图的性能优于普通视图,因为物化视图的数据将存储在表中,并且表可能会被索引,因此连接速度更快,并且在物化视图刷新时也会进行连接,因此无需每次触发连接语句,视情况而定。
其他区别包括:在使用View的情况下,我们总是获取最新数据,但是在实现视图的情况下,我们需要刷新视图以获取最新数据。 在实例化视图的情况下,我们需要额外的触发器或某种自动方法,以便我们可以保持MV的刷新,而数据库中的视图则不需要这样做。
#5楼
物化视图基于磁盘,并根据查询定义定期更新。
视图仅是虚拟的,每次访问时都运行查询定义。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3189834