天天看點

Oracle 資料庫優化的R方法(Method R)

導讀: 

  好長時間沒怎麼看 Oracle 技術文檔了,今天閱讀了一篇 Oracle Response Time Optimization with Method R. 這是 Optimizing Oracle Performance 經典圖書這本經典圖書的主旨方法。R 代表響應時間(response time).具體的定義如下: 

  1. Target the tasks that are critical to the business. 

  2. Collect properly scoped, un-aggregated profile data for each task while the task is exhibiting the behavior you want to record. 

  3. React with the candidate repair that will have the greatest net payoff to the business. 

  a. Stop if the cost of the repair exceeds the cost of the problem. 

  4. Go to step 1. 

  這裡面的核心元素是 Profile .Profile 要提供應用程式到最終使用者的響應時間的較長的描述.展現到 Oracle 資料庫這一層,就是要得到擴充的 SQL Trace 資料。 

  是不是感覺有些"虛", R 方法和一些我們已知的資料庫優化方法頗一些相似之處,但是 Cary Millsap 宣稱 R 方法是目前已知 Oracle 優化方法中的最優秀的、最全面的。我們來看看一些簡單比較: 

  R方法 vs OWI 方法 

  OWI(Oracle wait interface)隻是R方法中的一個基本元素. R 方法是适用更廣的(比如應用層)診斷指導政策(參見:How to Make an Application Easy to Diagnose); 

  R方法 vs YAPP 

  說來有趣, YAPP(Yet Another Performance Profiling Method) 方法的過程如下: 

  得到服務時間和等待時間及其組成部分 

  将所有組成部分排序 

  依次優化每個部分 

  對表中的每一項,減少每次執行的代價或執行次數 

  我們看看笛卡爾的方法論: 

  永遠不接受任何我自己不清楚的真理,就是說要盡量避免魯莽和偏見,隻能是根據自己的判斷非常清楚和确定,沒有任何值得懷疑的地方的真理。 

  可以将要研究的複雜問題,盡量分解為多個比較簡單的小問題,一個一個地分開解決。 

  将這些小問題從簡單到複雜排列,先從容易解決的問題着手。 

  将所有問題解決後,再綜合起來檢驗,看是否完全,是否将問題徹底解決了。 

  這是笛卡爾的方法論,内容引自不可以随便通路的維基百科.. 

  YAPP 其實不過是笛卡爾方法論的一個展現形式而已. 

  YAPP 隻适用于 Oracle 層,對于 Web 應用層等則無能為力; R 方法适用的範圍更廣(其實是 YAPP 的進化版本); YAPP 也搞不定 Oracle 的 idle events . 

  R 方法 vs 瓶頸分析(bottleneck analysis) 

  瓶頸分析則首先要找到瓶頸, R 方法是以目标任務為導向的, 着眼于業務. 直接抓最關心的角度. 

  雖然現在應用還不夠廣泛,但 R方法(Method R)是一種在理論上比較完美的方法.其中的産生思想值得我們深思. 

本文轉自 牛海彬 51CTO部落格,原文連結:http://blog.51cto.com/newhappy/76983,如需轉載請自行聯系原作者