ORACLE物化檢視-不能刪除物化檢視的解決辦法
阿新 • • 發佈:2019-01-03
幾分鐘前一網友問我如何刪除一個實體化檢視, 當然不是什麼語法不會的問題了, 是發了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語句也等了有半分多鐘, 但最後成功執行了. 接下來再進行刪除就沒有任何問題了, 也很快!
如何用好物化檢視, 也是一門不小的學問!