5

我们刚刚遇到了一个问题,即物化视图没有刷新,并给出了编译错误。一位高级开发人员说,他刚刚想出了解决方法——告诉 toad 编译物化视图。

所以我的问题很简单:刷新和“编译”有什么区别?

4

3 回答 3

8

物化视图的刷新是一种数据操作。MV 中的数据按照创建视图时的指定更新,例如快速刷新、完全刷新等。

当您编译 MV 时,Oracle 会重新验证视图所基于的查询。由于 MV 所基于的一个或多个基础对象发生变化,您的 MV 可能无效。

于 2011-09-26T22:53:53.370 回答
5

刷新会更新物化视图保存的数据。如果物化视图的定义无效,则无法执行此操作。

编译验证物化视图的定义,即 SQL 有效并且它所依赖的对象存在。

于 2011-09-26T22:55:11.550 回答
0

编译 = 验证并运行

刷新 = 重新提交数据。它与编程之外的含义和定义相同。

于 2018-03-20T14:16:32.167 回答