Oracle效能最佳化方法論的發展之一:基於區域性命中率分析的效能最佳化方法
簡單案例描述: 某市工商局的綜合業務處理系統長期以來在業務忙碌的時候業務執行緩慢,指導生成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
在本章不對各種命中率指標進行計算和分析,計算和分析的工作在涉及到具體構件時候來進行闡述。
在現在大記憶體時代,一個效能最佳化工作者遇到上述案例的效能最佳化,就和中彩票類似,一般只有在菜鳥安裝的資料庫中才會存在。
基於命中率的分析方法是一個古老的效能最佳化方法論,不僅僅是在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle效能優化方法論的發展之一:基於區域性命中率分析的效能優化方法Oracle優化
- Oracle效能最佳化方法論的發展之二:基於OWI的效能最佳化方法論Oracle
- Oracle效能優化方法論的發展之二:基於OWI的效能優化方法論Oracle優化
- Oracle效能優化方法論的發展之三:基於響應時間分析的效能優化方法論Oracle優化
- Oracle效能優化方法論的發展之六:基於流程分析和響應時間分析的效能優化方法論Oracle優化
- Oracle效能優化方法論的發展之四:基於資源瓶頸分析的優化方法論Oracle優化
- Oracle效能優化方法論的發展之五:基於工作單元的響應時間分析的效能優化方法論Oracle優化
- Oracle 效能最佳化的基本方法概述Oracle
- 常用的效能最佳化方法
- Oracle SQL效能最佳化常用方法OracleSQL
- 效能最佳化指南:效能最佳化的一般性原則與方法
- Web 效能最佳化方法Web
- 基於Python的效能最佳化Python
- 效能最佳化的一般策略及方法
- oracle 效能最佳化Oracle
- 【效能最佳化】ORACLE資料庫效能最佳化概述Oracle資料庫
- Oracle SQL效能最佳化系列講座之一(轉)OracleSQL
- Oracle SQL效能最佳化OracleSQL
- Oracle sql 效能最佳化OracleSQL
- 構建高效能網站:基於軟體質量屬性的綜合最佳化分析網站
- 壓測和效能分析方法論
- 前端效能最佳化實踐方向與方法前端
- Oracle Max()/Min()類的效能最佳化Oracle
- 提高網站效能的SSL/TLS最佳化方法介紹!網站TLS
- Oracle效能最佳化之SQL最佳化(轉)OracleSQL
- Oracle 效能最佳化小結Oracle
- ORACLE效能最佳化筆記Oracle筆記
- oracle大表效能最佳化Oracle
- 關於自定義程式的效能最佳化
- 讀鴻蒙論文,看效能最佳化鴻蒙
- Oracle效能最佳化之應用最佳化(轉)Oracle
- Oracle效能最佳化之最佳化排序操作(轉)Oracle排序
- 基於Oracle的SQL最佳化OracleSQL
- 後端介面效能最佳化分析後端
- AIX(5L)效能最佳化主要工具或者方法..AI
- Oracle效能最佳化 之 共享池Oracle
- 如何最佳化程式的效能
- Oracle效能最佳化之Rollback(undo)Segment最佳化(轉)Oracle