对象统计信息锁定的解决办法(ORA-20005/ORA-38029)
轉(zhuǎn)自:http://blog.itpub.net/29867/viewspace-730902/
解決辦法很明確,就是解鎖。
可以從兩個層面去處理:
A、解鎖Schema
DBMS_STATS.UNLOCK_schema_STATS(user);
B、解鎖單個對象
1)先查出被鎖定的表select table_name from user_tab_statistics where stattype_locked is not null;
然后再解鎖對象
exec dbms_stats.unlock_table_stats(user,’表名’);
2)也可直接生成sql腳本
select ‘exec dbms_stats.unlock_table_stats(”’||user||”’,”’||table_name||”’);’ from user_tab_statistics where stattype_locked is not null;
這里不在生成的sql中用動態(tài)的user是為了讓執(zhí)行者明確知道到底是解鎖哪個schema下的表,防止誤操作。
不過,你要特別注意,Oracle為什么會要鎖定住統(tǒng)計信息?
一般而言,這是為了穩(wěn)定執(zhí)行計劃,因為在Oracle 10g以上,Oracle默認(rèn)會自動收集統(tǒng)計信息,要想鎖住統(tǒng)計信息,請使用LOCK_SCHEMA_STATS、LOCK_TABLE_STATS包。
推薦方案B中生成標(biāo)本的方法。
總結(jié)
以上是生活随笔為你收集整理的对象统计信息锁定的解决办法(ORA-20005/ORA-38029)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows系统共享文件夹访问无需验证
- 下一篇: TB67S109AFTG采样电阻阻值怎么