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) 方法的過程如下:
1、得到服務時間和等待時間及其組成部分
2、將所有組成部分排序
3、依次優化每個部分
4、對表中的每一項,減少每次執行的代價或執行次數
我們看看笛卡爾的方法論:
永遠不接受任何我自己不清楚的真理,就是說要盡量避免魯莽和偏見,只能是根據自己的判斷非常清楚和確定,沒有任何值得懷疑的地方的真理。
可以將要研究的復雜問題,盡量分解為多個比較簡單的小問題,一個一個地分開解決。
將這些小問題從簡單到復雜排列,先從容易解決的問題著手。
將所有問題解決後,再綜合起來檢驗,看是否完全,是否將問題徹底解決了。
YAPP 其實不過是笛卡爾方法論的一個體現形式而已。
YAPP 只適用於 Oracle 層,對於 Web 應用層等則無能為力;R 方法適用的范圍更廣(其實是 YAPP 的進化版本); YAPP 也搞不定 Oracle 的 idle events。
R 方法 vs 瓶頸分析(bottleneck analysis)
瓶頸分析則首先要找到瓶頸, R 方法是以目標任務為導向的, 著眼於業務。直接抓最關心的角度。
雖然現在應用還不夠廣泛,但 R方法(Method R)是一種在理論上比較完美的方法。其中的產生思想值得我們深思。