跟蹤 session 的活動(dòng),Oracle 提供了很多種手段,不但可以對(duì)當(dāng)前連接的 session 進(jìn)行跟蹤, 也能夠?qū)ζ渌脩舻?nbsp;session 進(jìn)行跟蹤;通過(guò)對(duì) trace 檔的分析,不但可以掌握該 session 的活動(dòng), 也能夠找出這個(gè) session 中的瓶頸所在,對(duì) session 的跟蹤是 DBA 進(jìn)行系統(tǒng)調(diào)優(yōu)、故障診斷的經(jīng)常使用 方法。
對(duì)當(dāng)前會(huì)話的活動(dòng)進(jìn)行跟蹤及停止跟蹤:
1 | alter session set sql_trace= true / false |
對(duì)任意的 session 進(jìn)行跟蹤及停止跟蹤:
1 2 3 4 5 | exec 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 的性能狀態(tài)數(shù)據(jù)并把這些數(shù)據(jù)記錄到跟蹤文件 中,這個(gè)跟蹤文件提供了許多有用的信息,如解析次數(shù)、履行次數(shù)、CPU 使用時(shí)間、物理讀、邏 輯讀等,這些信息是判斷 SQL 性能優(yōu)劣的根據(jù)。user_dump_dest 參數(shù)說(shuō)明了生成跟蹤文件的目 錄,設(shè)置 SQL Trace 首先要在 init&sid.ora 中設(shè)定 timed_statistics 為 true,這樣才能得到那些重要 的時(shí)間信息,由于 SQL Trace 生成的 trace 文件讀起來(lái)很困難,最好用 TKPROF 工具對(duì)其進(jìn)行解 釋。
?