ORACLE物化视图-不能删除物化视图的解决办法

来源:互联网 发布:淘宝查号的二维码 编辑:程序博客网 时间:2024/04/30 21:29

http://www.anysql.net/oracle/drop_busy_materialized_view.html

 几分钟前一网友问我如何删除一个实体化视图, 当然不是什么语法不会的问题了, 是发了Drop命令后一直挂着, 几个小时都没有结束, 你可以想想为什么? 先看一下创建的语法.

create materialized view  user_order_mavi 
     build immediate  
     refresh   on commit  
     enable query rewrite 
as 
select  service_id,substr(user_isdn,1,7),
         bill_type,follow_action,count(user_isdn)  
from user_order 
group by service_id,substr(user_isdn,1,7),
          bill_type,follow_action

    看到这个语句, 应当是刷新的类型那儿有问题, 在ON COMMIT刷新模式下, 如果基表的DML很频繁, 会造成刷新很频繁, 这可能是DROP语句一直挂起的原因. 建议先运行以下命令:

ALTER MATERIALIZED VIEW user_order_mavi
   DISABLE QUERY REWRITE 
   REFRESH ON DEMAND;

    由于新很频繁, 上面的ALTER语句也等了有半分多钟, 但最后成功执行了. 接下来再进行删除就没有任何问题了, 也很快!

    如何用好物化视图, 也是一门不小的学问!

原创粉丝点击