1. 程式人生 > 其它 >那些在11gR2中可能惹禍的新特性,一張列表幫助你擺脫升級11gR2帶來的煩惱

那些在11gR2中可能惹禍的新特性,一張列表幫助你擺脫升級11gR2帶來的煩惱

那些在11gR2中可能惹禍的新特性,一張列表幫助你擺脫升級11gR2帶來的煩惱

有很多朋友因為11gR2那些潛在的特性可能給升級後系統穩定執行帶來麻煩而無法鼓足升級到11gR2的勇氣,實際Oracle在開發新版本RDBMS軟體時引入的一些特性有很好的理念的,但是往往這些理念會給已穩定的應用環境帶來變數,最顯著的就是10g/9i升級到11gR2時的執行計劃穩定性,此外adaptive cursor sharing 自適應遊標、automatic serial direct path自動判斷序列直接路徑讀、deferred segment creation、GC read mostly DRM.......等等的一系列特性已經在大量的案例中被證明是不適合於大量國產Application的。 我在這篇文章裡想做的是給出一張列表,能夠將11gR2的優化器optimizer特性、和其他的如上列的這些可能引起問題的特性通過引數的方式給出一張列表,你可以選擇性的禁用這些特性,前提是你的Applicaiton就該特性經過充分的測試,如果沒有時間或者環境來測試這些新特性,那麼還不如禁用這些特性,禁用新特性的結果也僅僅是回到老版本(一般是10gR2 10.2.0.4)的預設表現上來。 你肯定要問:" 如果都禁用了11gR2的特性,那麼我還升級做什麼?" 回答是: 首先這裡給出的是一張禁用11gR2特性列表,如果你對部分特性已經很熟悉,那麼你可以選擇性而非全部地禁用這些特性,如果不熟悉也測試不了,那麼無畏給穩定的系統引入不確定因素。其次這裡列出的僅僅是11gR2部分預設已啟用的可能"惹禍"的特性, 其他的一些特性例如flashback archive、securefile,它們預設不開啟,本身需要你去手動開啟才會生效,並不會受到這張列表的影響。
注意,為了避免濫用,我僅列出這張列表的部分內容,如果你確實需要該列表,那麼請去T.AskMaclean.com論壇下載,下載地址傳送
REM ===============================FOR STABLE OPTIMIZER===================================

alter system set "_enable_automatic_sqltune"=false scope=both;       Automatic SQL Tuning Advisory enabled parameter  

#以下優化器引數均可以在session/system級別設定,一般優化器引數均可以線上修改            
alter session set "_serial_direct_read"=false;
alter session set "_nlj_batching_enabled" = 0; 
alter session set "_optimizer_undo_cost_change" = '10.2.0.4'; -- 11.2.0.1
alter session set "_optimizer_null_aware_antijoin" = false; -- true
alter session set "_optimizer_extend_jppd_view_types" = false; -- true
alter session set "_replace_virtual_columns" = false; -- true
alter session set "_first_k_rows_dynamic_proration" = false; -- true
alter session set "_bloom_pruning_enabled" = false; -- true
alter session set "_optimizer_multi_level_push_pred" = false; -- true
alter session set "_optimizer_group_by_placement" = false; -- true
alter session set "_optimizer_extended_cursor_sharing_rel" = none; -- simple
alter session set "_optimizer_adaptive_cursor_sharing" = false; -- true
alter session set "_optimizer_improve_selectivity" = false ; -- true
alter session set "_optimizer_enable_density_improvements" = false; -- true
alter session set "_optimizer_native_full_outer_join" = off; -- force
alter session set "_optimizer_enable_extended_stats" = false; -- true
alter session set "_nlj_batching_enabled" = 0; -- 1
alter session set "_optimizer_extended_stats_usage_control" = 255; -- 224
alter session set "_bloom_folding_enabled" = false; -- true
alter session set "_optimizer_coalesce_subqueries" = false; -- true
alter session set "_optimizer_fast_pred_transitivity" = false; -- true
alter session set "_optimizer_fast_access_pred_analysis" = false; -- true
alter session set "_optimizer_unnest_disjunctive_subq" = false; -- true
alter session set "_optimizer_unnest_corr_set_subq" = false; -- true
alter session set "_optimizer_distinct_agg_transform" = false; -- true
alter session set "_aggregation_optimization_settings" = 32; -- 0
alter session set "_optimizer_connect_by_elim_dups" = false; -- true
alter session set "_optimizer_eliminate_filtering_join" = false; -- true
alter session set "_connect_by_use_union_all" = old_plan_mode; --true
alter session set "_optimizer_join_factorization" = false; -- true
alter session set "_optimizer_use_cbqt_star_transformation" = false; -- true
alter session set "_optimizer_table_expansion" = false ; -- true
alter session set "_and_pruning_enabled" = false ; -- true
alter session set "_optimizer_distinct_placement" = false ; -- true
alter session set "_optimizer_use_feedback" = false ; -- true
alter session set "_optimizer_try_st_before_jppd" = false ; -- true

REM ===============================MEMORY===================================

alter system set "_memory_imm_mode_without_autosga"=false scope=both; 
alter system set "_enable_shared_pool_durations"=false scope=spfile;

REM ===============================SEGMENT==================================
alter system set deferred_segment_creation=false; 

.................