Oracle自带工具sql优化集-SQL Tuning Advisor (使用心得体会)

时间:2022-05-16 16:33:17

如何有效的诊断和监控高负载的SQL对于DBA来说并非是件容易的事情,对SQL语句手工调优需要很多的经验和技巧,

结合个人经验常见如下问题:
          . 对SQL语句本身进行优化以便获得更优的执行计划;
          . 合理地调整数据读取方式(例如通过索引)以便能更快地访问数据;
          . 合理的设计SQL实现方式以实现最优的架构(例如:使用静态SQL还是动态SQL)
      当然,手工调优又是一件非常耗时的工作(我还是更喜欢手工调优),因为:
         . 每条SQL可能都是唯一的,这意味着你需要分别优化不同的SQL;
         . 系统可能是很复杂的系统,SQL代码非常非常多;
         . SQL调整可能是一件永远看不到终点的任务,因为系统中的SQL workload可能经常在变化;

SQL Tuning Advisor的出现减少了DBA的优化压力,尤其是对经验不够丰富甚至完全不懂调优的人来说,

使用STA一定要保证优化器是CBO模式下。个人感觉使用这样的工具,仅适合全然不懂SQL的调优的人群或者DBA作参考,工具未必能解决好问题。

SQL是业务表达的一种方式,工具不可能完全理解业务。SQL调优还是要结合用autotrace,10046,10053,display_cursor等这些优秀的工具做诊断。

然后依据业务和所具备的oracle基础的知识进行调优,个人认为这是最好的方法