编译和刷新物化视图有什么区别?

jld*_*ger 5 sql oracle materialized-views

我们遇到了一个问题,即物化视图没有刷新,并且出现编译错误.其中一位资深开发人员说,他只是想办法解决这个问题 - 告诉toad编译物化视图.

所以我的问题很简单:刷新和"编译"之间的区别是什么?

DCo*_*kie 8

刷新物化视图是数据操作.MV中的数据在创建视图时指定为最新,例如快速刷新,完全刷新等.

编译MV时,Oracle会重新验证视图所基于的查询.由于MV所基于的一个或多个基础对象的更改,您的MV可能无效.


Ton*_*ews 5

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

一个编译验证物化视图的定义,即该SQL是否有效,以及对象它依赖于存在.