R 代表響應(yīng)時間(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 要提供應(yīng)用程序到最終用戶的響應(yīng)時間的詳細(xì)描述。體現(xiàn)到 Oracle 數(shù)據(jù)庫這一層,就是要得到擴(kuò)展的 SQL Trace 數(shù)據(jù)。
是不是感覺有些“虛”, R 方法和一些我們已知的數(shù)據(jù)庫優(yōu)化方法頗一些相似之處,但是 Cary Millsap 宣稱 R 方法是目前已知 Oracle 優(yōu)化方法中的最優(yōu)秀的、最全面的。我們來看看一些簡單比較:
R方法 vs OWI 方法
OWI(Oracle wait interface)只是R方法中的一個基本元素. R 方法是適用更廣的(比如應(yīng)用層)診斷指導(dǎo)策略(參見:How to Make an Application Easy to Diagnose);
R方法 vs YAPP
說來有趣, YAPP(Yet Another Performance Profiling Method) 方法的過程如下:
1、得到服務(wù)時間和等待時間及其組成部分
2、將所有組成部分排序
3、依次優(yōu)化每個部分
4、對表中的每一項(xiàng),減少每次執(zhí)行的代價(jià)或執(zhí)行次數(shù)
我們看看笛卡爾的方法論:
永遠(yuǎn)不接受任何我自己不清楚的真理,就是說要盡量避免魯莽和偏見,只能是根據(jù)自己的判斷非常清楚和確定,沒有任何值得懷疑的地方的真理。
可以將要研究的復(fù)雜問題,盡量分解為多個比較簡單的小問題,一個一個地分開解決。
將這些小問題從簡單到復(fù)雜排列,先從容易解決的問題著手。
將所有問題解決后,再綜合起來檢驗(yàn),看是否完全,是否將問題徹底解決了。
YAPP 其實(shí)不過是笛卡爾方法論的一個體現(xiàn)形式而已。
YAPP 只適用于 Oracle 層,對于 Web 應(yīng)用層等則無能為力;R 方法適用的范圍更廣(其實(shí)是 YAPP 的進(jìn)化版本); YAPP 也搞不定 Oracle 的 idle events。
R 方法 vs 瓶頸分析(bottleneck analysis)
瓶頸分析則首先要找到瓶頸, R 方法是以目標(biāo)任務(wù)為導(dǎo)向的, 著眼于業(yè)務(wù)。直接抓最關(guān)心的角度。
雖然現(xiàn)在應(yīng)用還不夠廣泛,但 R方法(Method R)是一種在理論上比較完美的方法。其中的產(chǎn)生思想值得我們深思。
更多信息請查看IT技術(shù)專欄