追蹤sql會話 dbms_monitor

來源:互聯網
上載者:User

經常會遇到一個會話中存在sql效能問題,但無法定位哪一個sql導致DB效能問題較高,這是我們需要對這個session進行監控可以通過dbms_monitor包來實現。


首先確定要監控的會話sid及serial#,可以通過v$session視圖獲得

select sid, serial#, username from v$session  where ...


確定session後,調用dbms_monitor包的session_trace_enable過程:

SQL> exec dbms_monitor.session_trace_enable(session_id=>198, serial_num=> 7, waits=>true, binds=>true);PL/SQL procedure successfully completed.

這個例子選擇了對等待資訊及綁定變數的跟蹤。

追蹤整個會話的資源成本使用很高,一般會收集如下資訊:

會話中各個sql的邏輯、物理讀

cpu及已耗用時間

sql處理的行數

庫緩衝的未命中數

提交及復原次數

記錄每條語句的實際執行計畫的行運算

每條sql語句的等待事件


選擇性參數:

session_id標識所要追蹤會話的sid,如果忽略講會追蹤所有會話。

serial_num會話的順序號。

waits是否擷取等待事件資訊

binds是否擷取綁定變數的資訊


關閉會話追中

SQL> exec dbms_monitor.session_trace_disable(session_id=>198, serial_num=> 7);PL/SQL procedure successfully completed.



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.