1. 程式人生 > >Oracle如何對session進行跟蹤

Oracle如何對session進行跟蹤

跟蹤 session 的活動,Oracle 提供了很多種手段,不僅可以對當前連線的 session 進行跟蹤, 也可以對其他使用者的 session 進行跟蹤;通過對 trace 檔的分析,不僅可以掌握該 session 的活動, 也可以找出這個 session 中的瓶頸所在,對 session 的跟蹤是 DBA 進行系統調優、故障診斷的常用 方法。 

對當前會話的活動進行跟蹤及停止跟蹤: 

1alter session set sql_trace=true/false

對任意的 session 進行跟蹤及停止跟蹤: 

12345exec dbms_system.set_sql_trace_in_session(&sid,&serial#,&sql_trace);
alter session set events '&event trace name context forever,level &level';alter session set events '&event trace name context off';exec dbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,'');oradebug event 10046 trace name context forever,level 12

利用 Event、SQL  Trace 工具等可以收集 SQL 的效能狀態資料並把這些資料記錄到跟蹤檔案 中,這個跟蹤檔案提供了許多有用的資訊,如解析次數、執行次數、CPU 使用時間、物理讀、邏 輯讀等,這些資訊是判斷 SQL 效能優劣的依據。user_dump_dest 引數說明了生成跟蹤檔案的目 錄,設定 SQL Trace 首先要在 init&sid.ora 中設定 timed_statistics 為 true,這樣才能得到那些重要 的時間資訊,由於 SQL  Trace 生成的 trace 檔案讀起來很困難,最好用 TKPROF 工具對其進行解 釋。