Oracle g的最优秀功能之一是顾问框架(Advisory Framework)它是一个优化顾问集合可帮助您充分利用数据库其中的一个顾问——SQL访问顾问(Access Advisor)——建议对模式中的索引和物化视图进行改变来提高性能
但是由于顾问框架(Advisory Framework)被一般化以支持各种不同的顾问因此导航DBMS_ADVISOR包中的所有存储过程和函数会十分繁琐一个CREATE_TASK过程初始化一个新的优化任务一个SET_TASK_PARAMETER过程修改默认的参数CTEATE_SQLWKLD过程则建立一个负载对象等等
Oracle g第二版在DBMS_ADVISOR包中增加了一个QUITE_TUNE过程这个过程默认所需要的大多数参数来建立一个顾问对界面进行调整除建立一个负载对象(即进行优化的QSL语句表)外它还直接向过程提交一个单独的SQL语句
要使用QUITE_TUNE过程——或DBMS_ADVISOR包中的任何其它工具——用户必须具有顾问权限另外进行分析的用户必须对查询中引用的表至少拥有选择许可然后只要简单地调用过程就行如列表A所示
您可以在各种DBA_视图中查看运行结果DBA_ADIVSOR_LOG列出您进行的任务和它生成建议的数目然后可在DBA_ADVISOR_RECOMMENDATIONS视图中看到这些建议单个的命令可在DBA_ADVISOR_ACTIONS视图中找到
而且您还可以让DBMS_ADVISOR生成执行建议行为所需的完整SQL脚本GET_TASK_SCRIPT函数返回一个包含脚本的SLOB
列表B显示了列表A的运行结果因为WHERE子句使用的AMOUNT_SOLD栏没有编入索引需要进行全面表扫描来处理这个语句此外它暗示这是一个位图索引因为栏中的数据有许多重复的值