Oracle 11g SQL Performance Analyzer感受

介绍如何使用SQL Performance Analyzer捕捉SQL调整工具集,并通过改变参数或数据结构来比较不同的执行计划,评估性能变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
erformance Analyzer允许你捕捉一个sql调整工具集,可以很多次地回去使用不同选择来重新执行,然后获得改变后的结果。

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

  1.   捕捉一个SQL调整工具集。这是一个从数据库控制台进行的一个步骤。在我后面的例子里,我告诉它去捕捉用户FLOWS_030000在之后的两分钟执行的所有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 向导的一个截屏:

Guided Workflow向导的一个截屏

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

代码

  图2

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

代码

  图3

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


结果的截屏

让我们看一个SQL语句的细节以便我们可以看到在这个语句上的改变详情:

SQL语句的细节

  图5

  最后,下面两个截屏是从一个改变了的SQL计划的细节得来的,显示了旧计划和新计划。

  旧的计划:

旧的计划

  图6

  新的计划:

新的计划

  图7

正如你所看到的,新计划使用了一个索引,而旧计划没有。

  过去,测试针对一条SQL语句的变更相对简单,但是测试300条以上的语句、或者是整个数据库中的每条语句,这几乎是不可能的。所以这是数据库 管理员和开发人员之类的人非常欢迎的一个特性。作为一个开发人员,你可以在你提出请求之前,测试任何你希望你的数据库管理员要做的性能变更。作为一个数据 库管理员,你可以在对产品做更改之前查看所有潜在的变更所带来的影响,这可以显著地降低风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值