-t【Oracle-故障管理】-Trace跟蹤會話和會話執行慢故障分析

sdon發表於2010-11-26

Oracle 用trace來跟蹤session 

1.在資料庫安裝的電腦上,使用SQL plus 用 SYSDBA 身份連線到資料庫. 

2.找到要進行跟蹤的會話.

select sid,serial#,username from v$session ; 

3.啟用相關會話的SQL trace .

exec dbms_system.set_sql_trace_in_session(7,284,true)

4.從指定SESSION 執行一些程式過程

5.停止會話跟蹤.

exec dbms_system.set_sql_trace_in_session(7,284,false)

6.使用tkprof 程式對跟蹤到的檔案進行格式化. 

tkprof aaa.trc aaa.txt

7.檢視aaa.txt就可以了.

----如果是跟蹤本SESSION,可以用: 

dbms_session.set_sql_trace(true);
dbms_session.set_sql_trace(false);

Unix下查oracle最近執行的sql語句

$cd $ORACLE_HOME/admin/udump 
$ls -alt | more 
$tkprof filename out_filename explain=apps/apps sys=no 

8.知道了怎麼去跟蹤一個會話,現在我們就可以根據tkprof生的的txt檔案進行會話分析,

如圖:我們在trace出來的txt檔案中發現elapsed為327.44 ,即5分多鐘,比較後發現可以是該地方出現問題

select /*+ all_rows */ count(1)
from
 "INST"."OFFER_MEMBER" where "OFFER_ROLE_ID" = :1


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     38.67     327.44    1381706    1597572          1           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3     38.67     327.44    1381706    1597572          1           1


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/645199/viewspace-680380/,如需轉載,請註明出處,否則將追究法律責任。

相關文章