正在做sql的语句优化,得到了语句的执行计划。可是,不知道怎么看,比如哪个地方有问题,哪个地方需要改等等。
一般是不是看disk的存取次数?

解决方案 »

  1.   

    set autotrace on
    或explain for 
      

  2.   

    看成本(cost),看logical read、physical read。。
    看执行的先后顺序,看是否full scan,看是hash、merge、nest loop链接等等。。
      

  3.   

    一:
    SQLPLUS的AutoTrace是分析SQL的执行计划,执行效率的一个非常简单方便的工具,在绝大多数情况下,也是非常有用的工具。  
      1。如何设置和使用AUTOTRACE  
     
    SQL> connect / as sysdba  
     
    SQL> @?/rdbms/admin/utlxplan.sql  
     
    Table created.  
     
    SQL> create public synonym plan_table for plan_table;  
     
    Synonym created.  
     
    SQL> grant select,update,insert,delete on plan_table to public;  
     
    Grant succeeded.  
     
    SQL> @?/sqlplus/admin/plustrce.sql  
     
    SQL>grant plustrace to public.  
     
      2. 理解和使用AutoTrace  
     
      对于SQL 调整,使用Autotrace是最简单的方法了,我们只需要做:  
     
    SQL>SET AUTOTRACE ON  
     
      我们就可以看到我们SQL的执行计划,执行成本(PHYSICAL READ/CONSISTENT READ...)  
     
      加上SET Timing On或者Set Time On,我们可以得到很多我们需要的数据。  
     
      然后在toad里面对某一条sql语句按下Ctrl+e就可以看到这条语句的执行计划了。
    二:
    使用pl/sql developer 选中要查看的语句。。然后按F5。。查看执行计划。
      

  4.   

    看看单个表的访问路径是啥?多个表之间是以什么顺序来join的?采用的各种join 是啥?
    这样的数据处理方式是否合适?如果不是,什么才是更合适的?