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

tolywang發表於2007-03-26

好長時間沒怎麼看 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)是一種在理論上比較完美的方法.其中的產生思想值得我們深思.

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

相關文章