資料庫版本是10.2.0.1.0和10.2.0.4.0
sql> select * from v$version where rownum<2;
banner
----------------------------------------------------------------
oracle database 10g enterprise edition release 10.2.0.1.0 - prod
oracle database 10g enterprise edition release 10.2.04.0 - prod
sql> alter session set events '10046 trace name context forever,level 12';
session altered
sql> select count(*) from obj$;
count(*)
----------
51486
sql>
sql> select
2 d.value||'/'||lower(rtrim(i.instance,
3 chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name
4 from ( select p.spid
5 from v$mystat m,
6 v$session s,v$process p
7 where m.statistic# = 1 and s.sid = m.sid and p.addr = s.paddr) p,
8 ( select t.instance from v$thread t,v$parameter v
9 where v.name = 'thread' and
10 (v.value = 0 or t.thread# = to_number(v.value))) i,
11 ( select value from v$parameter
12 where name = 'user_dump_dest') d
13 /
trace_file_name
--------------------------------------------------------------------------------
/u01/app/oracle/admin/jingyong/udump/jingyong_ora_2487.trc
對目前會話使用10046級别為12級的跟蹤可以看到等待事件資訊
select count(*)
from
obj$
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
parse 1 0.00 0.00 0 0 0 0
execute 1 0.00 0.00 0 0 0 0
fetch 1 0.04 0.06 23 133 0 1
total 3 0.04 0.06 23 133 0 1
misses in library cache during parse: 1
optimizer mode: all_rows
parsing user id: sys
rows row source operation
------- ---------------------------------------------------
1 sort aggregate (cr=133 pr=23 pw=0 time=61480 us)
51486 index fast full scan i_obj1 (cr=133 pr=23 pw=0 time=1252937 us)(object id 36)
elapsed times include waiting on following events:
event waited on times max. wait total waited
---------------------------------------- waited ---------- ------------
sql*net message to client 2 0.00 0.00
sql*net message from client 2 0.01 0.01
db file sequential read 3 0.01 0.01
db file scattered read 7 0.00 0.00
********************************************************************************
下面來跟蹤其它會話
sql> exec dbms_system.set_ev(147,57,10046,12,'sys');
pl/sql procedure successfully completed
sql> exec dbms_system.set_sql_trace_in_session(147,57,true);
sql> exec dbms_system.set_sql_trace_in_session(147,57,false);
sql> exec dbms_system.set_ev(147,57,10046,0,'sys');
但是在跟蹤檔案中沒有等待資訊
fetch 1 0.03 0.03 0 133 0 1
total 3 0.03 0.03 0 133 0 1
1 sort aggregate (cr=133 pr=0 pw=0 time=33599 us)
51486 index fast full scan i_obj1 (cr=133 pr=0 pw=0 time=876016 us)(object id 36)
但是在全局啟用10046級别為12級的跟蹤在生成的跟檔案中可以看到等待事件資訊
select cols,audit$,textlength,intcols,property,flags,rowid
view$ where obj#=:1
parse 317 0.06 0.05 0 19 0 0
execute 438 0.09 0.08 0 0 0 0
fetch 438 0.08 0.33 56 1314 0 438
total 1193 0.23 0.48 56 1333 0 438
misses in library cache during parse: 20
misses in library cache during execute: 20
optimizer mode: choose
parsing user id: sys (recursive depth: 1)
1 table access by index rowid view$ (cr=3 pr=3 pw=0 time=20069 us)
1 index unique scan i_view1 (cr=2 pr=2 pw=0 time=10796 us)(object id 99)
db file sequential read 56 0.01 0.30
sql*net message to client 32 0.00 0.00
sql*net message from client 32 0.00 0.00
而使用dbms_support來進行跟蹤在生成的跟蹤檔案中也能看到等待事件資訊
sql> @d:\oracle\product\10.2.0\db_1\rdbms\admin\dbmssupp.sql
package created
sql> exec sys.dbms_support.start_trace_in_session(147,59,true,true);
sql> exec sys.dbms_support.stop_trace_in_session(147,59);
select count(*)
col$
fetch 1 0.14 0.29 130 138 0 1
total 3 0.14 0.30 130 138 0 1
1 sort aggregate (cr=138 pr=130 pw=0 time=296924 us)
56008 index fast full scan i_col3 (cr=138 pr=130 pw=0 time=1431460 us)(object id 47)
sql*net message from client 2 0.02 0.02
db file sequential read 1 0.02 0.02
db file scattered read 18 0.02 0.21
使用dbms_monitor來跟其他會話在生成的跟蹤檔案中也能看到等待事件
sql> exec dbms_monitor.session_trace_enable(147,61,true,true);
sql> exec dbms_monitor.session_trace_disable(147,61);
ind$
fetch 1 0.00 0.03 2 9 0 1
total 3 0.01 0.04 2 9 0 1
1 sort aggregate (cr=9 pr=2 pw=0 time=37846 us)
2345 index fast full scan i_ind1 (cr=9 pr=2 pw=0 time=107104 us)(object id 39)
db file sequential read 2 0.03 0.03
overall totals for all non-recursive statements
parse 5 0.00 0.00 0 0 0 0
execute 5 0.00 0.00 0 0 0 2
fetch 3 0.00 0.03 2 9 0 3
total 13 0.01 0.04 2 9 0 5
sql*net message to client 8 0.00 0.00
sql*net message from client 7 4.37 4.40