商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

Oracle 11g新特性之SQL Access Advisor

作者:Arup Nanda  2008-03-25

在上面的第 10 步中,我使用了一个对高级设置的引用。我们来看看这些设置的作用。

单击 Advanced Options 左侧的加号,这将显示一个屏幕,如下所示:

图 13

 该屏幕允许您输入将在其中创建索引的表空间的名称、索引的创建模式等。对于分区建议,您可以指定实现分区的表空间等。

看来,最重要的元素是 Consider access structures creation costs recommendations 复选框。如果您选中该复选框,SQL Access Advisor 将考虑索引本身的创建成本。例如,是否应该创建 10 个新索引,相关成本可能会导致 SQL Access Advisor 建议不创建它们。

您还可以在该屏幕中指定索引的最大大小。

与 SQL Tuning Advisor 的差异

在简介中,我只简单描述了该工具与 SQL Tuning Advisor 的不同,下面我们来详细说明它们之间的差异。一个简单演示可以最好地说明这些差异。

 从 SQL Advisors 屏幕中,选择 SQL Tuning Advisor 并运行。完成后,下面是显示结果的屏幕部分:

图 14 

现在,如果您单击 View 查看建议,将显示一个如下所示的屏幕:

图 15

 仔细查看建议:它将根据 RES_ID 列上的 TRANS 创建一个索引。但是,SQL Access Advisor 没有执行该建议。相反,它建议将表分区,原因如下:根据访问模式和可用数据,SQL Access Advisor 确定分区比在列上构建索引更加高效。与 SQL Tuning Advisor 提供的建议相比,这是一个更“实际”的建议。

SQL Tuning Advisor 提出的建议只对应以下四个目标之一:

  • 为统计信息丢失或失效的对象收集统计信息
  • 考虑优化器的任何数据偏差、复杂谓词或失效的统计信息
  • 重新构建 SQL 以优化性能
  • 提出新索引建议

 这些建议仅与单个语句(而非整个负载)相关。因此,只能将 SQL Tuning Advisor 偶尔用于高负载或关键业务查询。注意,与 SQL Access Advisor 相比(其标准更加宽松),该顾问程序只建议能够提供重大性能改进的索引。当然,SQL Tuning Advisor 没有分区顾问程序。

用例

SQL Access Advisor 对于调整模式(而不仅仅是查询)很有用。作为一个最佳实践,您可以使用该策略来开发高效的 SQL 调整计划:

  1. 搜索高成本 SQL 语句,或者(更好的是)评估整个负载。
  2.  将可疑语句放入 SQL 调整工具集。
  3. 使用 SQL Tuning Advisor 和 SQL Access Advisor 对其进行分析。
  4. 得到分析结果;记录建议。
  5. 将建议插入 SQL Performance Analyzer(参见本文)。
  6. 在 SQL Performance Analyzer 中检查更改前后的情况,并得出最佳解决方案。
  7. 重复上述操作,直到获得最佳模式设计。
  8. 获得最佳模式设计之后,您可能希望使用 SQL 计划管理基准锁定该计划(如本文所述)。

结论

调整数据库结构是最费时费力的棘手任务之一,同时也是最有成效的任务之一。同样,分区是一个非常有效的调整工具,但分区的选择很难轻松决定。SQL Access Advisor 在这些过程中提供了一个非常有用的帮助。

1 2
【内容导航】
第1页: 使用 SQL Access Advisor 解决 SQL 问题 第2页: 高级选项
©版权所有。未经许可,不得转载。
[责任编辑:ITPUB编辑]
·LoadRunner创建测试脚本
·用LoadRunner编写socket应用的测试脚本
·使用LoadRunner 编写JAVA 测试脚本
·LoadRunner脚本编程
·【高端访谈】寻找下一代CTO向冠军冲刺
·【技术专题】SQL Server 2008数据挖掘指南
·【高端访谈】畅谈“寻找下一代CTO”
·【热点专题】08年.NET最受欢迎的图书