10046事件

概述

查看10046事件,通常需要以下几个步骤:

  1. 在当前的会话(session)中激活10046事件
  2. 在当前session中执行目标sql
  3. 在当前session中关闭10046事件
  4. 将生成的文件转换为可阅读的形式

示例(注意需要DBA权限):

SQL> oradebug setmypid;
已处理的语句

SQL> oradebug event 10046 trace name context forever,level 12;
已处理的语句

SQL> select empno,ename,dname from scott.emp,scott.dept where emp.deptno=dept.deptno;

     EMPNO ENAME      DNAME
---------- ---------- --------------
      7782 CLARK      ACCOUNTING
      7839 KING       ACCOUNTING
      7934 MILLER     ACCOUNTING
      7566 JONES      RESEARCH
      7902 FORD       RESEARCH
      7876 ADAMS      RESEARCH
      7369 SMITH      RESEARCH
      7788 SCOTT      RESEARCH
      7521 WARD       SALES
      7844 TURNER     SALES
      7499 ALLEN      SALES

     EMPNO ENAME      DNAME
---------- ---------- --------------
      7900 JAMES      SALES
      7698 BLAKE      SALES
      7654 MARTIN     SALES

已选择14行。

SQL> oradebug event 10046 trace name context off;
已处理的语句

SQL> oradebug tracefile_name;
d:\oracle\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6340.trc
退出sqlplus,执行命令,将trace文件转换为可阅读的形式
[d:\~]$ tkprof d:\oracle\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6340.trc d:\oracle\trc\test.trc

参考文档

  1. 10046事件:获取最完整的sql执行计划

你可能感兴趣的:(10046事件)