Chinaunix首页 | 论坛 | 博客
  • 博客访问: 598241
  • 博文数量: 825
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-27 14:19
文章分类

全部博文(825)

文章存档

2011年(1)

2008年(824)

我的朋友

分类:

2008-10-27 14:28:31

    关于 调整存在着许多神秘和规则:
  •   我是否应该分割这个表?
  •   我应该使用什么分区scheme?
  •   我应该将OPTIZER_INDEX_ST_ADJ和OPTIMIZER_INDEX_CHING的值设为什么?
  •   我是否应该定期重建我的索引?

  。。。还有许多问题。在这个领的一些德高望重的专家,包括Tom Kyte和Jonathan Lewis提出了“证明它”的方法论。问题是构建用例和“试验”的时间可能稍稍受限。

  进入SQL Performance Analyzer(SQL性能分析器,SPA)。这是我最喜欢的11g新特性之一。SQL Performance Analyzer允许你捕捉一个sql调整工具集,可以很多次地回去使用不同选择来重新执行,然后获得改变后的结果。

  让我们快速浏览一下这个过程:

  1.   捕捉一个SQL调整工具集。这是一个从数据库控制台进行的一个步骤。在我后面的例子里,我告诉它去捕捉用户FLOWS_00在之后的两分钟执行的所有SQL。然后我运行Application Express builder来生成SQL。
  2.   运行SQL Performance Analyzer “Guided Workflow”向导:
  •   第一次替换SQL调整工具集。
  •   改变一些参数或数据结构。
  •   第二次替换SQL调整工具集。
  •   比较这两个调整工具集并结果。
  •   查看这个结果,包括改进或退后的SQL,以及改变了的所有SQL计划。

  示例

  这是一个例子,我们来看看改变OPTIMIZER_INDEX_COST_ADJ和OPTIMIZER_INDEX_CACHING 的影响。正如我先前所提到的,我们要使用的调整工具集是用户FLOWS_030000执行的SQL,所以这不是这个改变对整个数据库的影响,但是你可以捕捉整个数据库的调整工具集来测试这个影响。这里不会进行向导的所有5个步骤,因为没有那么多要看的。我会解释整个过程,包括捕捉SQL调整工具集,这只需要5分钟。

  要从11g数据库控制台里到SQL Performance Analyzer,点击Performance标签,然后点击右下角的SQL Performance Analyzer,之后再点击Guided Workflow。下面是Guided Workflow 向导的一个截屏:

在开始第二步之前,运行下面的代码:

  图2

  在开始第三步之前,运行下面的代码:

  图3

  下面是结果的截屏。注意这379条SQL语句中,147条有错误。这是由于在APEX 中的DML操作,所以在这不是问题,但是这是一个要注意的地方。还要注意有78%的改进作用和0%的衰退影响。

[1]   

【责编:Ken】

--------------------next---------------------

阅读(367) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~