暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

获取执行计划

原创 Queen 2020-04-30
755
  1. PL/SQL 选择目标语句按F5 查看执行计划

  2. explain plan
    explain plan for + 目标SQL
    select * from table(dbms_xpla.display);
    select * from table(dbms_xpla.display_cursor(null,null,‘advanced’));
    select * from table(dbms_xpla.display_cursor(‘sql_id/hash_value’,child_cursor_number,‘advanced’));
    select * from table(dbms_xpla.display_awr(‘sql_id’));

  3. autotrace
    (1)在sqlplus当前的session中执行命令set autotrace on,之后执行的所有sql除了显示执行结果还显示执行计划
    (2)在sqlplus当前的session中执行命令set autotrace traceonly,相对(1),只会显示执行结果的数量,而不会显示执行结果的具体内容,使用执行结果内容特别长,不关心执行结果只关心执行计划和资源消耗
    (3)在sqlplus当前的session中执行命令set autotrace traceonly,只显示执行计划
    (4)在sqlplus当前的session中执行命令set autotrace traceonly statistics,不显示执行计划,只显示执行结果的数量和资源消耗量
    set autotrace on 简写 set autot on
    set autotrace off 简写 set autot off
    set autotrace traceonly 简写 set autot trace
    set autotrace traceonly explain 简写 set autot trace exp
    set autotrace traceonly statistics 简写 set autot trace stat

  4. 10046事件与tkprof命令
    得到的执行计划显示了目标SQL执行计划中每一个执行步骤所消耗的逻辑度,物理读和花费时间
    会在参数USER_DUMP_DEST的目录下生成trace文件,命名格式‘实例名_ora_当前session的spid.trc’
    (1)在当前session激活10046事件
    alter session set events ‘10046 trace name context forever,level 12’
    or
    oradebug event 10046 trace name context forever,level 12
    (2)在session中执行目标SQL
    查看trace的文件
    sql>oradebug tracefile_name
    (3)关闭10046事件
    alter session set events ‘10046 trace name context off’
    or
    oradebug event 10046 trace name context off

tkprof命令
tkprof 原文件名 新文件名

5.获取真实的执行计划
(1)先执行sql语句
(2)select * from table(dbms_xplan.display_cursor(NULL,NULL,‘typical +ALLSTATS LAST PEEKED_BINDS’));

  1. sql monitor
    准确显示各个步骤的实际执行效果
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论