ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle查看执行计划的几种方法

oracle查看执行计划的几种方法

原创 Linux操作系统 作者:jx_yu 时间:2012-08-06 16:27:05 0 删除 编辑

说明:此处主要说明步骤,附件有以下各种方法对应的实验过程

1、列计划  explain plan for sql语句——>plan_table======没运行,只查看计划

             @?/rdbms/admin/utlxplan           生成plan_table表

             explain plan for  sql语句         对应sql的执行计划会存到plan_table表中

             select ID,PARENT_ID,OPERATION,OBJECT_NAME,COST  from plan_table; 从plan_table查看执行计划

             @?/rdbms/admin/utlxpls            使用脚本查看sql的执行计划[从内往外看]

 

2、sql_trace    适合:1、大批量的sql     2、查看内部隐藏的运行的命令

                           

              alter session set sql_trace=true;              当前会话

              alter session set sql_trace=false;

             

              select sid,serial#  from v$session where username='SCOTT';

              exec dbms_system.set_sql_trace_in_session(sid,serial#,true)  用sys跟踪别人

              对应的会在udump目录下生成spid.trc文件

              再通过tkprof命令将spid.trc文件转储为txt文件,我们即可查看

 

3、autotrace    sqlplus的特性

           先运行语句完成,才告诉计划

      A.通过执行@$ORACLE_HOME/sqlplus/admin/plustrce.sql创建plustrace角色    B.将 plustrace 角色授予当前用户(无 DBA 角色的用户),

      或者grant plustrace to public;

          set autot on[结果+计划+统计]    

          set autot off[关闭执行计划显示]

          set autot trace[计划+统计]             

          set autot trace exp  [计划]

              set autot trace stat [统计]

4、通过包来查看已经运行的执行计划

                            select sql_id,sql_text from v$sqlarea;

                            select plan_table_output from table(dbms_xplan.DISPLAY_CURSOR('sql_id'))

 

5、PL/SQL客户端中F5可以查看执行计划

 

 

详情见附件的实验过程...........

附件:http://space.itpub.net/?uid-27000195-action-viewspace-itemid-740026

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27000195/viewspace-740025/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-05-23

  • 博文量
    80
  • 访问量
    876947