分析oracle的sql语句的执行计划

Posted on 2012-11-24 20:51  bingfeng  阅读(4570)  评论(0编辑  收藏  举报

   在发现一个语句的执行计划有异常的时候,通常会生成一个sqlrpt看看使用的执行计划是否正确,如何来判断执行计划是否正确,将通过以下几个步骤来判断:

  1.先查看sql语句的结构,看语句中连接是union,还是等值连接还是左、右连接,再看连接中的表数量。

2.查看执行计划中出现异常的部分。

3.查看各表的索引情况及表是否是分区的,在where条件上使用的索引列是否正确,看统计分析表中对表的分析结果是否正确

4.分析表的用途,表的数据日增长量。

5.分析为什么会出现异常的执行计划。

跟踪执行计划的方法:

   (1) set autotrace on explain   只显示查询结果和执行计划

       set autotrace on statistic   只显示查询结果统计信息

      set autotrace on               显示前两者

     set autotrace traceonly      不显示查询结果,只显示执行计划和统计信息

    set autotrace off              关闭跟踪

要使用autotrace,必须在sqlplus里面使用,且使用的是sys用户。

(2)可以使用explain plan for  select   * from c_cons    可以解析执行计划,然后通过select * from table(dbms_xplain.display(null,null,’outline’,null));来显示执行计划。

(3)使用工具Toad for oracle使用sql_id来生成执行计划

Copyright © 2021 bingfeng
Powered by .NET 6 on Kubernetes