• 解决半岛问题 中美对话合作必不可少 2019-03-21
  • 阳泉计划今年在全省率先整体脱贫 2019-03-21
  • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
  • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
  • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
  • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
  • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
  • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
  • “直播政务述职”是与民沟通良机 2019-02-22
  • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2018-12-28
  • 三星侵犯一大学专利 被判支付罚金4亿美元 2018-12-04
  • 以政府拟严打“乱拍摄”以军行为 最高10年监禁 2018-12-04
  • 今天看啥
      热点:

        新疆35选7的开奖号 www.ts3ne.com

        使用10053事件跟踪的几种方法,10053事件几种方法


         

        10053事件:Event 10053 is an internal event that externalises some of the decisions made by the optimizer in to a trace file.

        对于10053更多的介绍,这里不再重复

         

        注:使用10053事件跟踪之前确保 TRACE_ENABLED 参数的值是TRUE

         

        下面例举三种使用10053事件跟踪的方式

        1.使用传统alter session 

        2.使用oradebug

        3.使用DBMS_SQLDIAG 包

         

         

        方法一:使用传统alter session 的方式

         

         -- 清空共享池

        SQL> alter system flush shared_pool;

        --设置dump文件大小无限制

        SQL> alter session set max_dump_file_size = unlimited;

        Session altered.

        --开启10053跟踪

        SQL> alter session set events '10053 trace name context forever, level 1';

        Session altered.

        --执行需要跟踪的SQL语句

        SQL> EXPLAIN PLAN FOR select empno,deptno,sal from emp where empno >= 7788;

        Explained.

        --查找trace文件路径

        SQL> SELECT value FROM v$diag_info  WHERE name='Default Trace File';

        VALUE
        --------------------------------------------------------------------------------
        /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_18679.trc

        SQL> exit

        查看 trace 文件  /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_18679.trc 获取跟踪结果

        示例如下:

        PARAMETERS USED BY THE OPTIMIZER
        ********************************
        *************************************
        PARAMETERS WITH ALTERED VALUES
        ******************************
        Compilation Environment Dump
        sqlstat_enabled = true
        is_recur_flags = 8
        Bug Fix Control Environment


        *************************************
        PARAMETERS WITH DEFAULT VALUES
        ******************************
        Compilation Environment Dump
        optimizer_mode_hinted = false
        optimizer_features_hinted = 0.0.0
        parallel_execution_enabled = true
        parallel_query_forced_dop = 0
        parallel_dml_forced_dop = 0

        ..................................................

        注:10053跟踪的trace文件,不能使用tkprof工具来处理,只能阅读原trace文件。tkprof工具只能用来处理sql_trace 和 10046事件产生的trace文件。

         

        跟踪其它会话的方式:

        sqlplus scott/oracle

        SQL> select sid,serial# from v$session where sid=(select sid from v$mystat where rownum <=1);

         SID  SERIAL#
        ---------- ----------
           22          339

         

        --开启对sid 对22的10053会话跟踪

        sqlplus / as sysdba

        SQL> EXEC SYS.DBMS_SYSTEM.SET_EV (22, 339, 10053,1, '');

        PL/SQL procedure successfully completed.

         

        --scott用户执行相关操作

        SQL> select empno,sal from emp where empno=7900;

        EMPNO   SAL
        ---------- ----------
         7900       8000

         

        --关闭跟踪

        SQL> EXEC SYS.DBMS_SYSTEM.SET_EV (22, 339, 10053,0, '');

        PL/SQL procedure successfully completed.

         

        --查看trace 文件,获取跟踪结果

        SQL> SELECT value FROM v$diag_info WHERE name='Default Trace File';

        VALUE
        --------------------------------------------------------------------------------
        /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_18940.trc

         

         

         

        方法二:使用oradebug 的方式

         

        -- 清空共享池

        SQL> alter system flush shared_pool;

        System altered.

         

        --查找需要被跟踪用户进程的OS PID

        sqlplus scott/oracle

        SQL> select spid from v$process where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum <=1));

        SPID
        ------------
        19003

        --开启对指定会话的跟踪

        sqlplus / as sysdba

        --设置OS PID

        SQL> oradebug setospid 19003
        Oracle pid: 32, Unix process pid: 19003, image: [email protected] (TNS V1-V3)

        --不限制跟踪文件大小
        SQL> oradebug unlimit;
        Statement processed.

        --开启10053事件跟踪
        SQL> oradebug event 10053 trace name context forever,level 1
        Statement processed.

        --执行需要跟踪的相关SQL

        SQL> select e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;

        --关闭跟踪

        SQL> oradebug event 10053 trace name context off;
        Statement processed.

        --显示trace文件路径
        SQL> oradebug tracefile_name
        /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_19003.trc

         

        查看 /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_19003.trc 获取10053跟踪结果

         

         

         

        方法三:使用DBMS_SQLDIAG 包的方式(此方式要求数据库版本在11gR2之上)

         

        sqlplus scott/oracle

        SQL> select empno,deptno,sal from emp where empno >= 7788;

         

        SQL> select sql_id, child_number, sql_text from v$sql
          where sql_text like '%7788%' and sql_text not like '%v$sql%' ;

           SQL_ID             CHILD_NUMBER             SQL_TEXT
        ----------------              ------------             ----------------------------------------------------------------------------------
        5s4ny8pxtdkyf                 0                       select empno,deptno,sal from emp where empno >= 7788

         

        SQL> execute DBMS_SQLDIAG.DUMP_TRACE(p_sql_id=>'5s4ny8pxtdkyf', p_child_number=>0, p_component=>'Optimizer', p_file_id=>'SQL_TRACE_10053');

        PL/SQL procedure successfully completed.

         

        SQL> SELECT value FROM v$diag_info WHERE name='Default Trace File';

        VALUE
        ------------------------------------------------------------------------------------------------------------
        /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_19052_SQL_TRACE_10053.trc

         

        查看文件/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_19052_SQL_TRACE_10053.trc 获取跟踪结果

         

        新疆35选7的开奖号 www.ts3ne.comtrue//www.ts3ne.com/oracle/1316430.htmlTechArticle使用10053事件跟踪的几种方法,10053事件几种方法 10053事件:Event 10053 is an internal event that externalises some of the decisions made by the optimizer in to...

        相关文章

          暂无相关文章
        相关搜索:

        帮客评论

        视觉看点
      • 解决半岛问题 中美对话合作必不可少 2019-03-21
      • 阳泉计划今年在全省率先整体脱贫 2019-03-21
      • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
      • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
      • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
      • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
      • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
      • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
      • “直播政务述职”是与民沟通良机 2019-02-22
      • 熊猫启航计划即将启动 让世界聆听大熊猫声音 2018-12-28
      • 三星侵犯一大学专利 被判支付罚金4亿美元 2018-12-04
      • 以政府拟严打“乱拍摄”以军行为 最高10年监禁 2018-12-04