有一个问题是我们为什么要创建物化视图。我有一个表并逐步刷新表我有dbms作业,它将来自不同表的数据合并到此。因此它相当于具有快速刷新的物化视图。有什么区别吗?在以上两种情况下哪种实施更好?
答案 0 :(得分:0)
实体化视图可以刷新按需或刷新频率。它可以包含两个或多个表的连接。
创建实体化视图时,您可以选择指定刷新是在“请求”还是“开启执行”时进行。在ON COMMIT的情况下,每次事务提交时都会更改实例化视图,从而确保实体化视图始终包含最新数据。或者,您可以通过指定ON DEMAND来控制物化视图刷新的时间。对于ON DEMAND物化视图,可以使用DBMS_SYNC_REFRESH或DBMS_MVIEW包中提供的刷新方法执行刷新:
以下是文档link
还可以逐步刷新物化视图。
您的自定义解决方案
占用大量代码并且无法很好地扩展。
答案 1 :(得分:0)
certain conventions后的实体化视图可以使用实体化视图日志快速刷新。这意味着Oracle只需处理实际更改即可刷新物化视图,其中合并操作必须每次都比较所有行。因此,物化视图可以更快,更频繁地刷新,特别是对于较大的表格。
答案 2 :(得分:0)
经过大量的搜索,我在物化视图上得到了一些我们在普通表上无法做到的东西,它是查询重写。以下是我的发现。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input ttype="text" />
<input ttype="text" value="10" />
<textarea></textarea>
<div></div>
您可以在上面的示例中看到如何使用实体化视图而不是再次扫描整个表。