zoukankan      html  css  js  c++  java
  • 查看Oracle数据库中的执行计划

    1、set autotrace traceonly命令

    2、explain plan for命令

     1)explain plan for select * from dual; 

     2)select * from table(dbms_xplan.display);  

    3、10046查看Oracle数据库中的执行计划

    能够得到SQL执行计划中每一个执行步骤所消耗的逻辑读,物理读,和花费的时间。实际上,也可以通过gather_plan_sstatistics Hint 配合dbms_xplan 包一起使用得到和10046事件类似细粒度的明细的执行计划。

    三个步骤就可以通过10046事件获得SQL的执行计划。

    1.首先在当前session 中激活10046事件。
    2.在当前session 中执行SQL语句。
    3.最后当前session 中关闭10046事件。
     当执行完上述步骤后,oracle就会将目标SQL的执行计划和明细资源消耗写入此session对应的trace文件中。
    oracle会在user_dump_dest参数设置的目录下产生这个trace文件。
     我们有两种方法在当前session中激活10046事件。
    1.在当前session中执行alter session set events '10046 trace naem context forever,level 12'
     2.在当前session中执行oradebug event 10046 trace name context forever,level 12'
    上述命令中的关键字”level“后的数字是标识设置的10046时间的level值,这个值是可以修改的,我们
     通常使用的值为12,表示在产生的trace文件中除了有目标sql的执行计划和资源消耗明细外,还包含
    SQL使用的绑定变量的值以及该session所经历的等待事件,除了level值外,其他的部分是固定的语法,
     是无法修改的。
     我推荐使用第2种方法,因为可以在激活10046事件后执行命令oradebug tracefile_name可以获得当前
    session 所对应的trace文件的具体路径名称。
     示例:

    1.我们先激活10046事件,我们是oradebug命令来激活。
    SQL>oradebug setmypid
     SQL>oradebug event 10046 trace name context forver,level 12
     2.在当前session中激活了10046事件后,我们执行一个SQL语句
    SQL>SELECT * FROM hr.test;
     3.使用oradebug tracefile_name 命令查看当前session所对应的trace文件路径和名称
    SQL>oradebug tracefile_name
     /app/oracle/diag/rdbms/pxboracle/pxboracle/trace/pxboracle_ora_18565.trc
     4.关闭当前session 中的10046事件:
    SQL>oradebug event 10046 trace name context off

    5.生成TKPROF报告

    然后键入 tkprof /app/oracle/diag/rdbms/pxboracle/pxboracle/trace/pxboracle_ora_18565.trc /tmp/tk.prf

  • 相关阅读:
    【渗透攻防】深入了解Windows
    浅析B/S架构数据库连接方式
    剖析泄露你银行卡密码的钓鱼网站:真假“10086”
    红黑树的删除和加入节点
    Unity里包裹Debug,且不影响Debug的重定向
    Java向上转型和向下转型(附具体样例)
    Javascript 方法apply和call的差别
    普通androidproject转换为C/C++project之后,再还原成androidproject的解决方式
    初识双网卡
    js面向对象编程: js类定义函数时prototype和this差别?
  • 原文地址:https://www.cnblogs.com/elontian/p/9706075.html
Copyright © 2011-2022 走看看