Oracle效能最佳化方法論的發展之一:基於區域性命中率分析的效能最佳化方法

531968912發表於2015-12-29
        簡單案例描述: 某市工商局的綜合業務處理系統長期以來在業務忙碌的時候業務執行緩慢,指導生成AWR報告,發現Cache Hit Ratio只有72%,Top 5 wait主要為db file sequence read和db file scattered read。檢查SGA Buffer Cache配置,只有375m。簡單增加Buffer Cache到2GB,所有效能問題都消失。
        在現在大記憶體時代,一個效能最佳化工作者遇到上述案例的效能最佳化,就和中彩票類似,一般只有在菜鳥安裝的資料庫中才會存在。
       基於命中率的分析方法是一個古老的效能最佳化方法論,不僅僅是在Oracle資料庫,在Sybase,DB2等資料庫,甚至在任何IT裝置中都存在基於命中率的分析方法。對於Oracle資料庫而言,基於區域性命中率的分析方法基於以下樸素的觀點:如果構成系統的每個零件都表現優異,那麼整個系統的表現也是優異。當然任何具有流程知識的人員都知道以上觀點是不可靠的。
      命中率的分析方法作用於效能最佳化具有以下致命的缺陷:
      (1)、命中率分析僅僅關注作用於自身,不關心外部資訊。我們這裡以馬路收費站處作為例子,命中率分析方法僅僅關心透過我收費站的吞吐量是否正常,而看不到為了等待穿過收費站的長長的隊伍。從命中率的觀點出發,只要我收費站操作順利,不出故障,即使隊伍排成10KM的長龍也是效能優異的。
      (2)、命中率分析方法透過全域性平均化模糊了個體,而大部分效能問題都是基於個體的。比如某個心外科手術醫生對於心臟搭橋手術的成功率為98%,每年做500例手術,但是對於那個10個落在2%的病人來說就不是2%,而是100%的丟了性命。
       儘管命中率分析方法具有明顯的不可靠,但由於其獲取資料成本低廉以及易於理解,也確實具備描述目標基本效能的能力,事實上成為了IT裝置甚至生活中工作效能優異的標準效能描述方法。對於命中率分析方法,我們可以這樣來描述看待它:命中率分析結果優秀不能保證業務系統或者資料庫具有優異的效能,但命中率分析結果不好基本可以確認業務系統或者資料庫不具備優異的效能。在Oracle效能最佳化中,命中率分析方法不足以成為獨立工作的方法論,但必須成為輔助分析的一部分,確保Oracle每一個部件自身工作表現優異才可以使業務效能表現優異,Oracle的某個部件工作表現不正常,幾乎可以斷定業務效能不會反應良好。
        命中率可以體現不同顆粒度上,系統全域性層,會話層,物件層和SQL層。我們以Buffer Cache命中率來說明命中率分析的不同層次。
        計算公司:Buffer Cache Hit Ratio:= logical reads/(logical reads+physical reads)
        系統全域性層:v$sysstat或者V$BUFFER_POOL_STATISTICS
       會話層:v$sesstat或者v$sessio
       物件層:v$segstat或者v$segment_statistics
       SQL層: v$sqlarea    
       具體到某Session的一條SQL或者某一時間段的命中率還可以透過SQL Trace或者10046跟蹤得到。
       all     count       cpu    elapsed       disk      query    current        rows
       ------- ------  -------- ---------- ---------- ---------- ----------  ----------
       Parse       19      0.72       0.75          0          0          0           0
       Execute     19      0.17       0.13          0          0          0           0
       Fetch       19      0.65       0.64          0      83049      12369         114
      ------- ------  -------- ---------- ---------- ---------- ----------  ----------
      total       57      1.54       1.52          0      83049      12369         114
   
     在本章不對各種命中率指標進行計算和分析,計算和分析的工作在涉及到具體構件時候來進行闡述。

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

相關文章