2015-04-15 35 views
1

据我所知,Oracle只读物化视图与真实视图类似,但它包含源数据的完整快照 - 存储在类似去桌子的路。为了更新快照,可以调用Oracle命令来从源代码中刷新物化视图的内容。当刷新Oracle只读物化视图时,访问旧数据被阻止

问题是,在刷新过程中,物化视图是被阻止读取的,还是以独立方式应用更新,从而允许在更新发生时仍旧读取旧快照?

+3

检查出atomic_refresh选项。 – GriffeyDog

回答

3

进入Oracle编写者不会阻止读者。决不。这是版本控制的主要优势。在物理上它看起来就像你更新表格而有人从中进行选择一样。

顺便说一句,你可以试试。用较长的刷新时间制作MV并检查是否可以在刷新时阅读它。

1

对于Oracle有可能的两种方式如何清理MV refresing

  • 截断(DDL),DDL承诺,所以有人可能会看到MV空刷新
  • 删除期间(DML)是交易之前,因此用户将看到旧版或新版数据。

正如@GriffeyDog所述,请参见atomic_refresh选项。