物化的变化

时间:2010-11-18 07:37:47

标签: oracle jobs materialized-views

我在一个服务器上有一个由DB链接创建的物化视图。 Mview上有一个工作正在运行。 (之前使用dbms_refresh.make创建)。

现在我在原始表中创建了3个新字段。 我的疑问是。

1)我是否需要再次删除并创建Mview,如果是,我是否需要再次在主服务器上创建Mview日志 2)在Mview上运行的作业会发生什么,我是否需要创建它?

还有在Mview上创建的视图,所以 - 如果我运行创建或替换视图查询,它会产生任何问题吗?

请指导。

谢谢!

2 个答案:

答案 0 :(得分:3)

如果需要在物化视图中包含新列,则需要重新创建物化视图。您必须显式删除视图,因为没有“创建或替换物化视图”语句。

DROP MATERIALIZED VIEW blah;
CREATE MATERIALIZED VIEW blah...

删除/重新创建实体化视图应重新创建刷新作业。不是100%肯定,但您也应该重新创建日志。

而且,如果您不需要在视图中包含新列,那么您真的不需要做任何事情......

答案 1 :(得分:2)

删除/创建实体化视图后,您应该重新编译其他视图,因为它们可能已失效。

您可以使用

检查是否发生了这种情况
select * 
from user_objects
where status = 'INVALID';

可以使用

重新编译视图
alter view the_view compile;

exec dbms_utility.compile_schema(user);

这只是重新编译模式中的所有内容。这样做时一定要没有正在运行的工作!