溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQL中如何利用10046事件擴展SQL跟蹤

發(fā)布時間:2021-11-09 14:34:01 來源:億速云 閱讀:113 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫

這篇文章將為大家詳細講解有關(guān)SQL中如何利用10046事件擴展SQL跟蹤,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在會話sql_trace的基礎(chǔ)上,利用10046診斷事件,可以擴展sql_trace的功能,主要體現(xiàn)在對綁定變量和等待事件的跟蹤上。

10046診斷事件可以設(shè)置的四個級別:

level 1

啟用標準的SQL跟蹤,等價于sql_trace

level 4

level  1 + 綁定變量信息

level 8

level  1 + 等待事件信息

level 12

level 1 +  level 4 + level 8

啟用自己會話的10046事件跟蹤

alter session set events '10046 trace name context forever,level 12';

關(guān)閉10046事件跟蹤

alter session set events '10046 trace name context off';

設(shè)置對指定會話的跟蹤,有以下幾種方法:

1、通過程序包dbms_monitor

開啟跟蹤

exec dbms_monitor.session_trace_enable(, , waits => true, binds => true);

關(guān)閉跟蹤

exec dbms_monitor.session_trace_disable(, );

2、通過程序包dbms_system

開啟跟蹤

exec dbms_system.set_ev(, , 10046, 12, '');

關(guān)閉跟蹤

exec dbms_system.set_ev(, , 10046, 0, '');

3、通過oradebug

開啟跟蹤

oradebug setorapid ; oradebug setospid ;

oradebug session_event 10046 trace name context forever, level 12;

確定跟蹤文件路徑

oradebug tracefile_name;

關(guān)閉跟蹤

oradebug event 10046 trace name context off;

當前會話的事件編號及其級別,可以用以下代碼獲取

set serveroutput on

declare

event_level number;

begin

    for event_number in 10000 .. 10999 loop

        dbms_system.read_ev(event_number, event_level);

        if (event_level > 0) then

            dbms_output.put_line('Event ' || to_char(event_number) ||

                                 ' is set at level ' ||

                                 to_char(event_level));

        end if;

    end loop;

end;

/

關(guān)于“SQL中如何利用10046事件擴展SQL跟蹤”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI