2015-05-22 73 views
0

美好的一天, 技术上可以在master数据库(而不是实体表)中创建针对另一个视图的实例化视图吗? 我的DBA建议oracle不允许针对视图创建物化视图日志。海事组织的观点与表格几乎相同,所以它应该是可能的。 有没有人成功完成这个任务(Oracle 11g)。oracle 11g针对另一个视图的物化视图

+2

你试过了吗?如果是的话,你会得到一个错误? –

+0

也许你的问题比你想象的更唠叨。如何同步物化视图以及如何更快地实现物化视图有多种方法。也许你的DBA因为一些快速刷新功能而抱怨。 – ibre5041

回答

0

documentation是这个相当清楚的:在物化视图日志的主表

限制

以下限制适用掌握的表物化视图日志:

  • 您无法为临时表或视图创建实例化视图日志。

  • 您无法为具有虚拟列的主表创建物化视图日志。

视图是不几乎相同的表。这是一个存储查询,因此它没有存储空间,DML只能通过替代触发器来实现。它没有注意到基础数据变化的基础。

想想看,为了支持一个视图日志 - 即使是对一个简单的单表视图 - 视图基表的更新也必须检查是否有任何视图;检查是否有任何物化视图日志;然后确定是否需要记录更改 - 这意味着执行每个视图的查询并查看整个结果集。想象一下,更改为基础表。然后设想一个更复杂的查看查询,包含聚合或多个表格等。

您应该实际实现视图查询以决定是否需要记录更改,以更新实际的物化视图。这部分是实际物化视图的部分原因 - 停止您必须通过跟踪主表上的更改来重复执行昂贵的视图查询。

您必须在(普通)视图的基表上创建物化视图日志。

+0

美好的一天Alex,感谢您的详细回复。完全理解。谢谢。 –