Oracle 11g 的維修視窗時間段內,會自動收集為查詢優化器使用的統計資訊。
Automatic Optimizer Statistics Collection:
該維修視窗默認周一到周五,每天晚上10點執行,持續4小時;周六到周日,早上6點開始,持續20小時。
在維修視窗期間會造成業務系統的資料庫查詢操作和修改操所,全部阻塞掛起。
目前已統一將維修視窗時間段調整為每天凌晨3點,持續2小時;但因為業務系統24小時都有人使用,所以想進步一減少維修視窗期間資料阻塞對業務系統的影響,就有下面幾個問題。請高手回答下!
有如下幾個問題:
1、為什么會阻塞,維修視窗干的上面事情會造成相關操作阻塞?
2、該資料統計資訊任務關閉的話,對業務系統的性能有何影響?
3、如果不關閉資料統計資訊任務,如何減少其對業務系統的影響?
請Oracle高手指導,多謝!
uj5u.com熱心網友回復:
1、為什么會阻塞,維修視窗干的上面事情會造成相關操作阻塞?不會阻塞。表收集統計資訊的時候 增刪改查甚至加欄位,刪欄位 都不會被阻塞。只是收集統計資訊的時候比較占IO,所以一般都是配置資料庫閑時跑維護任務。
2、該資料統計資訊任務關閉的話,對業務系統的性能有何影響?
oracle 現在是CBO 優化器對sql進行優化,依靠收集的統計資訊分析得出最優的執行計劃。如果你把統計資訊的維護任務關閉了,業務表的統計資訊都是過時的不準確的,cbo得出的執行計劃就不會是最優的。比如該走索引的,執行計劃走成全表了,sql性能自然會受影響。
3、如果不關閉資料統計資訊任務,如何減少其對業務系統的影響?
統計資訊任務還是有必要打開的。調到業務閑事執行就好了。
uj5u.com熱心網友回復:
樓主細說下,你們是怎么收集的,比如收集的比例是多少;兩個建議:
1、如果比例設定的過高,可以適當的下調一下。10% -20% 就可以。
2、不同的業務模塊分別收集,周一收集財務的、周二收集大供應鏈的、周三收集其他模塊的。
uj5u.com熱心網友回復:
如果應用系統沒有統計資訊的支持也跑的挺歡的,那么不收集統計資訊也沒什么,但,如果你之前一直開著收集統計資訊的job,最好不要停了,因為隨著資料的增長,原有的統計資訊會越來越不符合實際情況,CBO生成高效執行計劃的幾率會變得越來越低,終有一天,你可能要遭遇由此帶來的SQL性能突變,嚴重時可能會有整庫性能問題,甚至宕機……這關不關會帶來什么樣的后果,其實是個概率問題,沒有說開著一定好,或者說關了就一定不好的說法,有最新最詳實的統計資訊,CBO就更趨向生成高效的執行計劃,但不代表它能讓所有SQL的執行計劃都變得更好(更差也有可能),至少沒把握控制好執行頻率很高的應用SQL的執行計劃前,建議打開這個自動收集統計資訊的job,有遇到即使使用系統自帶job收集統計資訊也無法得到合適執行計劃的SQL,再做特殊處理——比如收集更加詳細或者精確的統計資訊,使用profile等手段固定執行計劃等等。
uj5u.com熱心網友回復:
實際情況是,維修視窗期間,會出現查詢卡住的情況;等維修視窗時間一過,又自動恢復了。
可能什么會引起卡住。
該查詢陳述句的執行效率實際只有1ms,耗費也只有1,磁盤也只有幾個位元組。如何解釋?
uj5u.com熱心網友回復:
你從哪看到的耗費只有1,磁盤幾個位元組這些資訊呢?執行計劃中?
如果卡住的話,監控下該會話在等什么等待事件,再具體分析了。
uj5u.com熱心網友回復:
1、為什么會阻塞,維修視窗干的上面事情會造成相關操作阻塞?
不會阻塞。表收集統計資訊的時候 增刪改查甚至加欄位,刪欄位 都不會被阻塞。只是收集統計資訊的時候比較占IO,所以一般都是配置資料庫閑時跑維護任務。
2、該資料統計資訊任務關閉的話,對業務系統的性能有何影響?
oracle 現在是CBO 優化器對sql進行優化,依靠收集的統計資訊分析得出最優的執行計劃。如果你把統計資訊的維護任務關閉了,業務表的統計資訊都是過時的不準確的,cbo得出的執行計劃就不會是最優的。比如該走索引的,執行計劃走成全表了,sql性能自然會受影響。
3、如果不關閉資料統計資訊任務,如何減少其對業務系統的影響?
統計資訊任務還是有必要打開的。調到業務閑事執行就好了。
實際情況是,維修視窗期間,會出現查詢卡住的情況;等維修視窗時間一過,又自動恢復了。
可能什么會引起卡住。
該查詢陳述句的執行效率實際只有1ms,耗費也只有1,磁盤也只有幾個位元組。如何解釋?
1、看看作業系統層面,是不是資源吃緊;
2、看看你卡住的陳述句到底是什么樣的陳述句,執行計劃如何;
3、當你的陳述句卡住的時候,查查它的等待事件
提供這些資訊再做進一步調查
uj5u.com熱心網友回復:
另外,所謂的“該查詢陳述句的執行效率實際只有1ms,耗費也只有1,磁盤也只有幾個位元組”,很可能就是統計資訊有問題導致的,實際上并不是,uj5u.com熱心網友回復:
http://blog.csdn.net/liuzhijian2008x/article/details/79267814卡的時候你參考我博客的監控下什么等待事件了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/71754.html
標籤:高級技術
上一篇:求助 oracle 優化陳述句
