zoukankan      html  css  js  c++  java
  • Oracle 课程八之性能优化之10046事件

    Oracle 的事件很多。 具体参考blog:

    Oracle 跟踪事件 set event

    转摘:http://blog.csdn.net/tianlesoftware/archive/2009/12/13/4977827.aspx

    10046 事件主要用来跟踪SQL语句,它并不是ORACLE 官方提供给用户的命令,在官方文档上也找不到事件的说明信息。 但是用的却比较多,因为10046事件获取SQL的信息比SQL_TRACE 更多。 更有利于我们对SQL的判断。 

    10046 事件按照收集信息内容,可以分成4个级别:
    Level 1: 等同于SQL_TRACE 的功能
    Level 4: 在Level 1的基础上增加收集绑定变量的信息
    Level 8: 在Level 1 的基础上增加等待事件的信息
    Level 12:等同于Level 4+Level 8, 即同时收集绑定变量信息和等待事件信息。

    1 对当前session 使用10046事件

    SQL>alter session set events '10046 trace name context forever, level 12'; --启动10046事件
    执行相关事务
    SQL>alter session set events '10046 trace name context off'; -- 关闭10046事件

    该事件收集的信息也是放在trace文件中,查看trace文件的方法,参考性能优化之SQL TRACE的TKPROF 工具。

    2.对其他的会话进行跟踪

       之前说的都是对当前session进行跟踪,在生产环境中,可能需要对其他session进行跟踪,有如下2种方法:

    2.1  用SQL_TRACE跟踪

    --第一步:查询SID信息

    SQL> select sid,serial# from v$session where SID=267;

           SID    SERIAL#

    ---------- ----------

           267        996

     --第二步:启动SQL_TRACE

    SQL> execute dbms_system.set_sql_trace_in_session(267,996,true);  -- 启动SQL_TRACE

    PL/SQL 过程已成功完成。

    --第三步: 关闭SQL_TRACE

    SQL> execute dbms_system.set_sql_trace_in_session(267,996,false); -- 关闭SQL_TRACE

    PL/SQL 过程已成功完成。

    2.2 使用10046 事件跟踪

    SQL> exec dbms_monitor.session_trace_enable(267,996,waits=>true,binds=>true);  -- 启动trace

    PL/SQL 过程已成功完成。

    SQL> exec dbms_monitor.session_trace_disable(267,996); -- 关闭trace

    PL/SQL 过程已成功完成。

    注意:

      如果一条SQL语句中包含了通过DBLINK进行的数据操作,我们想对这条SQL进行trace跟踪,在本地只能够trace到本地执行的SQL信息,而对于远程的SQL语句,由于它运行在远端的数据库上,我们要获得它的信息,需要到远端的数据库上,找到运行这条SQL语句的session,然后对它做Trace。 另外,这条SQL语句的执行计划也只能从远端数据库上捕获到。

  • 相关阅读:
    Linux下管道编程
    【Windows】用信号量实现生产者-消费者模型
    初识【Windows API】--文本去重
    HDU 5183 Negative and Positive (NP) --Hashmap
    【ASC 23】G. ACdream 1429 Rectangular Polygon --DP
    UVALive 4670 Dominating Patterns --AC自动机第一题
    POJ 2225 / ZOJ 1438 / UVA 1438 Asteroids --三维凸包,求多面体重心
    我也来写2014年总结
    UVALive 4870 Roller Coaster --01背包
    UVALive 4864 Bit Counting --记忆化搜索 / 数位DP?
  • 原文地址:https://www.cnblogs.com/HondaHsu/p/3533384.html
Copyright © 2011-2022 走看看