• 利用sql_trace跟踪一个指定会话的操作


    1.  sys用户给管理用户授权。
    SQL> grant execute on sys.dbms_system to andy;


    Grant succeeded.


    2. 查询被跟踪用户的sid,serial#  
    SQL> select sid,serial# from v$session where username='DBLINK';


           SID    SERIAL#
    ---------- ----------
    31    7
    3.  管理用户andy开始跟踪dblink用户
    SQL> exec sys.dbms_system.set_sql_trace_in_session(31,7,true);


    PL/SQL procedure successfully completed.


    4.  dblink被跟踪用户执行测试语句。
    SQL> select * from user_tables;


    5.  跟踪结束
    SQL> exec sys.dbms_system.set_sql_trace_in_session(31,7,false);


    PL/SQL procedure successfully completed.


    6.  dblink用户查询自己当前trace文件号
    SQL>  select * from v$diag_info where name like 'Default%';


       INST_ID NAME
    ---------- ----------------------------------------------------------------
    VALUE
    --------------------------------------------------------------------------------
    1 Default Trace File
    /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3524.trc


    7. 用tkprof工具生成查看文件
    [oracle@11g ~]$ tkprof /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3524.trc andy2.txt sys=no


    TKPROF: Release 11.2.0.1.0 - Development on Mon Nov 17 16:48:38 2014


    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


    8.  查看跟踪记录
    [oracle@11g ~]$ cat andy2.txt


    TKPROF: Release 11.2.0.1.0 - Development on Mon Nov 17 16:48:38 2014


    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


    Trace file: /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_ora_3524.trc
    Sort options: default


    ********************************************************************************
    count    = number of times OCI procedure was executed
    cpu      = cpu time in seconds executing 
    elapsed  = elapsed time in seconds executing
    disk     = number of physical reads of buffers from disk
    query    = number of buffers gotten for consistent read
    current  = number of buffers gotten in current mode (usually for update)
    rows     = number of rows processed by the fetch or execute call
    ********************************************************************************


    SQL ID: dtbhjabjx3v1u
    Plan Hash: 4102440123
    select * 
    from                       <--  #刚执行sql找到
     user_tables           




    call     count       cpu    elapsed       disk      query    current        rows
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    Parse        1      0.09       0.10          0          0          0           0
    Execute      1      0.00       0.00          0          0          0           0
    Fetch        2      0.11       0.31        174       1390          0           1
    ------- ------  -------- ---------- ---------- ---------- ----------  ----------
    total        4      0.21       0.41        174       1390          0           1
    。。。。省略输出。
       


    OK,结束。  转载请标明出处

  • 相关阅读:
    DotNetty是微软的Azure团队,使用C#实现的Netty的版本发布
    C# 与 .NET Framework 对应关系
    C# 基于Directshow.Net lib库 USB摄像头使用DirectShow.NET获取摄像头视频流
    Actor模型的状态(State)+行为(Behavior)+邮箱(Mailbox)
    c# 无法加载DLL:找不到指定的模块(异常来自HRESULT:0X8007007E)
    管道式编程(Pipeline Style programming)
    Word文档转Markdown插件(Windows)
    纯Java实现定时任务(转)
    Spring MVC使用Schedule实现定时任务
    Spring Boot使用Schedule实现定时任务
  • 原文地址:https://www.cnblogs.com/andy6/p/6195942.html
Copyright © 2020-2023  润新知