分享

SQL优化方法

 昵称10504424 2013-03-14
一、 什么情况下需要优化SQL?
   1、单个查询执行时间非常长

   2、许多查询执行时间过长,但是有一个代表性的可以调整(使用绑定变量)


二、什么情况下会触发SQL慢?
 1、数据库版本的升级改变了行为或有bug
    2、统计信息不正确
  3、数据变化

  4、应用变化


三、什么地方会出错呢?
 1、索引:没被创建、建了但无效、建了但没走索引
 2、表连接的顺序错了
 3、表连接的类型错了
   4、谓词没有推进,视图没有合并
   5、查询转化不当(COST)

 6、其它问题


四、为什么CBO会生成错误的执行计划?
 1、CBO估算表里的行数与实际相差很大
    2、CBO的算法有缺陷
    3、统计信息不正确

  4、其它原因


五、我们将如何做?
  1、定位缓慢的SQL
     ①客户反应
     ②OS中TOP工具
     ③AWR/ASH/ADDM/STATSPACK/10046(TKProf)/TRCA
     ④sql脚本
  2、验证此SQL是慢的
  3、确定此SQL缓慢的问题
     ①统计信息
     ②CBO
     ③执行计划
  ④Hints
     ⑤索引

 4、解决此SQL


六、优化核心

 1、优化器

   2、执行计划

 3、Cursor和绑定变量

   4、查询转换

    5、 统计信息

    6、Hints


七、总结

 what(is broken) ---> why(is broken) ---> how(to fix it)





**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name:    guoyJoe

QQ:        252803295

Email:    oracledba_cn@hotmail.com

Blog:      http://blog.csdn.net/guoyJoe

ITPUB:   http://www./space-uid-28460966.html

OCM:     http://education.oracle.com/education/otn/YGuo.HTM
 _____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  总群:127149411

Oracle@Paradise No.1群:177089463(已满)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多