如果我在Oracle中有定义为每15分钟REFRESH FAST ON COMMIT的物化视图。它在最初创建时就可以正常工作,并且可以很好地刷新。是什么导致它停止快速刷新?
我可以看到它已经停止刷新,基于以下内容:
select mview_name, last_refresh_date from all_mviews;发布于 2009-09-08 12:55:02
我们发现的一些东西似乎阻止了MV的刷新: 1.对基表的DDL的更改2.如果MV是跨DB链接的,则跨链接获取数据的问题(例如,我们在这里有一个数据库和一个远程数据库)。如果在刷新过程中,两个数据库之间的连接失败,则刷新失败)
在#1的情况下,刷新失败,再也不能工作了,我们必须重新创建MV。在#2的情况下,还不清楚刷新是否会再次出现。快速刷新MV已被证明对我们来说不可靠,因此我们在Windows调度程序中创建了一个作业来启动刷新。
发布于 2009-09-08 18:31:40
在我的上一份工作中偶尔发生的一件事是,数据库管理员活动有时会将参数job_queue_processes设置为0。这将停止实体化视图刷新,直到将参数值设置为大于0的值。
发布于 2009-09-08 21:17:11
它取决于实体化视图。以下来自oracle数据字典的查询将为您提供所有( oracle用户的)实体化视图的列表,以及这些视图的刷新速度。
SELECT MVIEW_NAME, FAST_REFRESHABLE FROM USER_MVIEWS;FAST_REFRESHABLE列将为您提供以下值之一:NO:实体化视图不可快速刷新,因此比较复杂。
目录:快速刷新仅支持直接加载。
DML DML:仅对操作支持快速刷新。
DIRLOAD_DML:直接加载和操作都支持DML快速刷新。
直接加载和DIRLOAD_LIMITEDDML:操作的子集支持DML。
过去给我带来问题的是DIRLOAD_LIMITEDDML.我通常会收到那些,如果有一个伯爵,麦克斯,等等。在MVIEW查询中。通常在插入和删除时刷新,但不在更新时刷新。
https://stackoverflow.com/questions/1392242
复制相似问题