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

  • 相关阅读:
    记一次安装python umysql模块的报错
    elasticsearch 6.2.4添加用户密码认证
    mysqldump 备份数据和恢复
    记一次线上Java程序导致服务器CPU占用率过高的问题排除过程
    配置rpm包安装的jdk环境变量
    centos6 & centos 7 防火墙设置
    MySQL启动出现The server quit without updating PID file错误解决办法
    ptmalloc,tcmalloc和jemalloc内存分配策略研究 ? I'm OWen..
    为什么要内存对齐 Data alignment: Straighten up and fly right
    linux驱动学习_1
  • 原文地址:https://www.cnblogs.com/elontian/p/9706075.html
Copyright © 2011-2022 走看看