Oracle 数据库优化的R方法(Method R)

2/9/2008来源:Oracle教程人气:7031

  好长时间没怎么看 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 Oracle Wait Interface ">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)是一种在理论上比较完美的方法.其中的产生思想值得我们深思.