在上面的第 10 步中,我使用了一个对高级设置的引用。我们来看看这些设置的作用。
单击 Advanced Options 左侧的加号,这将显示一个屏幕,如下所示:

该屏幕允许您输入将在其中创建索引的表空间的名称、索引的创建模式等。对于分区建议,您可以指定实现分区的表空间等。
看来,最重要的元素是 Consider access structures creation costs recommendations 复选框。如果您选中该复选框,SQL Access Advisor 将考虑索引本身的创建成本。例如,是否应该创建 10 个新索引,相关成本可能会导致 SQL Access Advisor 建议不创建它们。
您还可以在该屏幕中指定索引的最大大小。
与 SQL Tuning Advisor 的差异
在简介中,我只简单描述了该工具与 SQL Tuning Advisor 的不同,下面我们来详细说明它们之间的差异。一个简单演示可以最好地说明这些差异。
从 SQL Advisors 屏幕中,选择 SQL Tuning Advisor 并运行。完成后,下面是显示结果的屏幕部分:
现在,如果您单击 View 查看建议,将显示一个如下所示的屏幕:

仔细查看建议:它将根据 RES_ID 列上的 TRANS 创建一个索引。但是,SQL Access Advisor 没有执行该建议。相反,它建议将表分区,原因如下:根据访问模式和可用数据,SQL Access Advisor 确定分区比在列上构建索引更加高效。与 SQL Tuning Advisor 提供的建议相比,这是一个更“实际”的建议。
SQL Tuning Advisor 提出的建议只对应以下四个目标之一:
这些建议仅与单个语句(而非整个负载)相关。因此,只能将 SQL Tuning Advisor 偶尔用于高负载或关键业务查询。注意,与 SQL Access Advisor 相比(其标准更加宽松),该顾问程序只建议能够提供重大性能改进的索引。当然,SQL Tuning Advisor 没有分区顾问程序。
用例
SQL Access Advisor 对于调整模式(而不仅仅是查询)很有用。作为一个最佳实践,您可以使用该策略来开发高效的 SQL 调整计划:
结论
调整数据库结构是最费时费力的棘手任务之一,同时也是最有成效的任务之一。同样,分区是一个非常有效的调整工具,但分区的选择很难轻松决定。SQL Access Advisor 在这些过程中提供了一个非常有用的帮助。
| 第1页: 使用 SQL Access Advisor 解决 SQL 问题 | 第2页: 高级选项 |