【恩墨學院】 盤點 Oracle 11g 中新特性帶來的10大效能影響(下)

恩墨學院發表於2017-11-03


還記得我們前些天盤點的Oracle 11g 的10大效能影響(上)嗎?


Oracle的任何一個新版本,總是會帶來大量引人矚目的新特性,但是往往在這些新特性引入之初,首先引起的是一些麻煩,因為對於心技術的不瞭解,因為對於舊環境的不適應,從Oracle產品到技術服務運維,總是要走過一個磨合的長期過程。


那麼這次,我們將繼續為大家分享那些新特性帶來的新煩惱,為那些準備或者剛剛踏入這個新版本的使用者,作為借鑑和參考。


6. _optimizer_use_feedback - 最佳化器的基數反饋


Cardinality Feedback - 基數反饋,是Oracle 11.2中引入的新特性,這個新特性利用SQL執行過程中的資訊採集,動態的調整執行計劃,以解決統計資訊陳舊、無直方圖或基於直方圖基數計算不準確等情況。


Oracle希望由此提升執行計劃的準確性,但是在某些情況下,我們可能遇到SQL 第一次執行效能最好,之後再執行其效能變差的情況。


初始化引數 _optimizer_use_feedback 可以控制這個特性的啟用,設定為False關閉了這個特性:

alter system set “_optimizer_use_feedback=false;


7. deferred_segment_creation - 延遲段建立


Oracle 11.2中, 當我們建立一個空表或者空分割槽時,為了加快建立速度,Oracle並不會立即分配初始段和空間,實際的表段Table Segement被延遲到第一行資料插入時建立。


該功能透過DEFERRED_SEGMENT_CREATION引數啟用,預設為TRUE。延遲段建立可以節省空間,加快初始化過程,是面向效能和資源的一個最佳化。

這個新特性帶來的一個問題是,在使用 exp / imp 進行匯出匯入時,不會包含這些空表,可能導致遺漏物件。


如果覺得這個特性是困擾,可以透過修改引數關閉這個特性:

alter system set deferred_segment_creation=flase sscope=spfile;


8. _resource_manager_always_on - 資源管理器


11g中,Oracle的資源管理器預設被啟用,並且時常發揮作用,並可能引發競爭。


你可能在TOP 5事件中看到類似的情景:


 
恩墨學院-專注oracle大資料培訓

有兩個引數配合設定,可以在你不需要資源管理器時徹底關閉這個隱含的控制:

SQL> alter system set "_resource_manager_always_off"=true scope=spfile; 

SQL> alter system set "_resource_manager_always_on"=false scope=spfile;


9. _gc_policy_time - RAC叢集中的DRM管理


DRM是 Dynamic Resource Management 的簡稱,意思就是動態資源管理。在Oracle RAC中,所有的資料塊(Data block)都有一個例項作為主例項進行管理,叫做MasterMaster 負責照看好自己所管轄的data block的狀態,包括鎖定等,並對跨例項訪問進行授權。

如果能隨著資料塊的訪問頻繁動態的修改資料塊的master節點,那麼對應GCgrant message則會大量的減少。基於以上考慮,DRM特性應運而生。但是早期的DRM在進行 re-master的過程中長長帶來短時的效能影響,在很多重要環境中,這是不能忍受的。


如果希望關閉DRM這個特性,可以結合設定 _gc_policy_time  _gc_undo_affinity :

alter system set "_gc_policy_time" = 0 scope=spfile;

alter system set "_gc_undo_affinity" = false scope=spfile;


10. _cleanup_rollback_entries _undo_autotune - UNDO的清理和調整


UNDO的管理中,如何設定保留時間,清理回滾段條目,釋放UNDO空間,在高事務率的資料庫中非常重要。


_cleanup_rollback_entries - 指定回滾時每次回滾的ENTRIES個數,預設為100,可以設定更高提升回滾速度;


_undo_autotune - 用於自動調整undo retention時間,設定 _undo_autotune=true,則undo_retention不再適用,Oracle會自行決定tuned_undo_retention


以下設定在需要時對這些特性做出調整:

alter system set "_undo_autotune" = false scope=spfile;

alter system set "_cleanup_rollback_entries" = 1000 scope=spfile;



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28530558/viewspace-2146804/,如需轉載,請註明出處,否則將追究法律責任。

相關文章