使用10046 trace跟踪SQL

levels
1: Standard SQL TRACE                      标准的SQL Trace
4: Includes Bind Variables                 包括绑定变量
8: Includes Waits                          包括等待事件
12: Includes Bind Variables and Waits      包括绑定变量和等待事件


方法:
只能跟踪当前会话

alter session set events '10046 trace name context forever, level 12';
alter session set events '10046 trace name context off';

跟踪当前会话或其他会话

select spid from v$process p,v$sessoin s where p.addr=s.paddr and s.sid in(select sid from v$mystat);

conn / as sysdba
oradebug setospid <PID>
oradebug unlimit
oradebug event 10046 trace name context forever,level 12
oradebug event 10046 trace name context off —关闭trace

更多办法请参考文章: https://blog.csdn.net/u010692693/article/details/103081054

环境准备

drop table t purge;
create table t ( x int );
alter system flush shared_pool;        --测试需要,生产环境慎重执行
alter system flush buffer_cache;       --测试需要,生产环境慎重执行

开始跟踪

SQL> alter session set events '10046 trace name context  forever,level 12';

Session altered.

SQL> begin
  2      for i in 1 .. 100000
  3      loop
  4          execute immediate
  5          'insert into t values ( '||i||')';
  6      end loop;
  7      commit;  
  8  end;
  9  /

PL/SQL procedure successfully completed.

SQL> alter session set events '10046 trace name context off';

Session altered.


查找生成的跟踪文件

SELECT c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace
FROM v$process a, v$session b, v$parameter c, v$instance d
WHERE a.addr = b.paddr
AND b.audsid = userenv('sessionid')
AND c.name = 'user_dump_dest';

TRACE_FILE_NAME
----------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2199.trc


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

对trace文件进行格式化

[oracle@orasql ~]$ tkprof /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2199.trc /home/oracle/10046.log

TKPROF: Release 11.2.0.4.0 - Development on Sat Jul 22 16:46:35 2017

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


[oracle@orasql ~]$


查看格式化后的跟踪文件

[oracle@orasql ~]$ vi /home/oracle/10046.log

TKPROF: Release 11.2.0.4.0 - Development on Sat Jul 22 16:46:35 2017

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

Trace file: /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2199.trc
Sort options: prsela  exeela  fchela
********************************************************************************
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
********************************************************************************

begin
    for i in 1 .. 100000
    loop
        execute immediate
        'insert into t values ( '||i||')';
    end loop;
    commit;
end;

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      4.98       5.07          0          0          0           1
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        2      4.99       5.07          0          0          0           1

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 84

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  log file sync                                   1        0.01          0.01
  SQL*Net message to client                       1        0.00          0.00
  SQL*Net message from client                     1       26.55         26.55
********************************************************************************

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值