在CBO模式下,优化器判断是使用全表扫描还是使用索引效率更高。优化器比对所有可能的方法,并选择最低代价的方法。
使用SQL Tuning Advisor与SQL Access Advisor可以调用advisory 模式下的优化器来帮助检查一个SQL语句或者一组SQL语句,来提高他们的效率。SQL Tuning Advisor与SQL Access Advisor可以给出一系列的建议。SQL Access Advisor主要负责给出模式修改建议,例如增加或者drop索引、物化视图。SQL Tuning Advisor主要给出其他建议,例如创建SQL Profile、重构SQL语句。如果通过创建一个索引可以获得明显的性能提升,SQL Tuning Avisor也会推荐,然而这些建议放在SQL Access Advisor中验证通过,这个SQL Advisor使用包含了一组典型SQL语句的sql workload.
ADDM会自动识别高负载(high-load)的SQL语句,也当然也可以手工使用SQL Tuning Advisor。手工使用有两种方法,一种是调用package,如dave dai的文章:http://blog.csdn.net/tianlesoftware/article/details/5630888, 一种是使用DBconsole(入口是Related links->Advisor Central->SQL Advisors),一步步的方法如下:http://docs.oracle.com/cd/B28359_01/server.111/b28275/tdppt_sqltune.htm#TDPPT160.