星期三, 8月 08, 2012

Oracle 8i upgrade to 9i , 9i upgrade to 11g 遇上效能問題(CPU busy)

Case1 :  8i upgrade to 9i

目前證實是資料庫升板可能遇上相容性問題 , 9i 新的subquery 增強功能在某些狀況下 會變得緩慢 (特別是在8i upgrade to 9i 的資料庫)
有兩種方法如下:
1.
SQL>
alter session set "_UNNEST_SUBQUERY" = false;
alter session set "_ALWAYS_SEMI_JOIN" = off;
alter session set "_ALWAYS_ANTI_JOIN" = off;
 then execute your SQL command...
2.設定資料庫參數

*._UNNEST_NOTEXISTS_SQ='OFF' (需重啟)


Case 2 :  9i to 10g/11g
一樣跟subquery 機制有關聯 , 修改前後占用CPU 資源差異甚鉅
SQL>
alter session set "_optimizer_cost_based_transformation" =off;
alter session set "_gby_hash_aggregation_enabled" = FALSE;
then execute your SQL command...

詳細說明可以參考網誌內的另一篇文章
http://jaychu649.blogspot.tw/2011/12/10ggroup-by-sort.html

BTW,
如果還無效 記得分析相關表格與索引再試試.
Ref:


update 2017/3/14
12c建議的參數如下:

  • "optimizer_adaptive_features"=FALSE  (關閉12c  cost optimizer 的new features)
  • "_optimizer_ads_use_result_cache" = FALSE (關閉 12c 自動使用 result cache)
  • DEFERRED_SEGMENT_CREATION = FALSE (讓table create 時就建立 segment)
  • SEC_CASE_SENSITIVE_LOGON = TRUE
         (設定帳號的密碼要不要區分大小寫… 預設為TRUE,此參數於12c 已deprecated, 還是可以設為FALSE只是alert會報此參數已deprecated)

沒有留言:

LinkWithin-相關文件

Related Posts Plugin for WordPress, Blogger...