各位好,本人非DBA,作为开发人员对sql调优比较感兴趣,以前都是写普通的sql语句,刚接触执行计划这些东西,想问下根据执行计划判断sql性能的简单的判断指标。我用pl/sql developer开发,通过F5查看执行计划,其中有I/O消耗、CPU消耗、基数等多项指标,但不知调优时应该如何参考,比如哪个值的大小代表什么含义,以及大小对性能的体现是正比还是反比等等。
特此请教,往各位指点,最好稍微详细点介绍下各个指标,谢谢!

解决方案 »

  1.   

    支持!
    可以先google一下参数的基本含义!
      

  2.   

    怎么没人回复呢,自己顶下
    另外这篇文章可以参考下,正在看,只是内容太宽泛了......
    http://www.oracle.com.cn/viewthread.php?tid=80153
      

  3.   

    不过还是要结合你的业务来说,例如:逻辑读出许多数据块(从SGA buffer cache读取),不见的系统性能就没有问题,一条SQL语句执行了很长时间,却返回很少的数据块,也是有问题的
      

  4.   

    有一列是description,指示的是全表扫描还是索引,这个不用说当然是走索引好了..
    最重要的是cost,cardinality,bytes这几列。cardinality是逻辑读的意思,基本上它的值越小越好,表示的性能越好,在几十到几百都算正常的,当然得看你全表的数据量大小了..
      

  5.   

    这几天看了写资料,收获很多,大家说的其实都对,只是这个没有固定的规范,而且不同sql的各项数值也没有实际意义,所以很难一下说清楚,总体来说,oracle11g以后,单一的优化oracle其实都已经帮着做了,只是特殊sql的优化要综合N多因素综合考虑,这也就是DBA的特长了。下边这个帖子讲的很好,推荐给大家看看:
    http://www.oracle.com.cn/viewthread.php?tid=80153结贴了,现在回答问题的人越来越少了!