所以我有一个整体观点(我知道......):
CREATE MATERIALIZED VIEW vw_my_view_here
REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE + 1/24 AS
/*huge-ass select statement here*/
UNION ALL
/*huge-ass select statement here*/
UNION ALL
/*huge-ass select statement here*/
UNION ALL
/*huge-ass select statement here*/
这已经在我们的系统中存在了一段时间而没有引起问题。其中一个选择查询被破坏(以某种方式 - 基础表中的模式更改)并且已经连续24小时运行并消耗所有盒子资源。这是盒子上其他东西的问题。
我无法删除或修改视图 - 因为它完全没有记录(我知道......)而且我需要弄清楚谁先消耗它,它是如何填充的等等。
我试图杀死正在处理查询的进程,但似乎另一个查询会立即被解雇。
如何在没有1)放弃视图的情况下停止物化视图,以及(2)不刷新视图(因为这需要24小时以上和我们所有的盒子资源)。
我试过了
alter materialized view view_name refresh on demand;
但它似乎只是无休止地运行,对原始的大规模查询没有影响。
有什么想法吗?
答案 0 :(得分:2)
altering the refresh settings的文档说:
此子句仅设置默认刷新选项。有关实际实现刷新的说明,请参阅Oracle Database Advanced Replication和Oracle Database Data Warehousing Guide。
所以你的alter materialized view
语句本身没有刷新。它只是等待当前排除的刷新完成才能更新该视图的数据字典。当前刷新完成(或终止)后,alter
将完成,并阻止进一步自动刷新。