有很多朋友因为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.askmac.cn论坛下载,下载地址传送:
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; .................
Leave a Reply