設定會話TRACE的方法(一)
很多時候需要設定會話的SQL_TRACE,以便於分析,簡單總結一下設定的方法和適用的情況。
這一篇介紹設定當前會話SQL_TRACE的方法。
DBMS_SESSION包小議(五):http://yangtingkun.itpub.net/post/468/498559
最顯而易見的方法設定SQL_TRACE引數:
SQL> ALTER SESSION SET SQL_TRACE = TRUE;
會話已更改。
SQL> ALTER SESSION SET SQL_TRACE = FALSE;
會話已更改。
在任何版本都可以適用,可以設定會話級和例項級的SQL_TRACE,缺點只能設定當前會話,如果想開啟其他會話的SQL_TRACE,需要建立登入觸發器,另外只能開啟1級TRACE方式,也就是不包含等待事件和繫結變數資訊。
第二種方式DBMS_SESSION包:
SQL> EXEC DBMS_SESSION.SET_SQL_TRACE(TRUE)
PL/SQL 過程已成功完成。
SQL> EXEC DBMS_SESSION.SET_SQL_TRACE(FALSE)
PL/SQL 過程已成功完成。
這種方式等同於ALTER SESSION SET SQL_TRACE,除了不能設定例項級的SQL_TRACE,其他優缺點一致,不過DBMS_SESSION還提供了另外級別的TRACE功能:
SQL> EXEC DBMS_SESSION.SESSION_TRACE_ENABLE(TRUE, TRUE)
PL/SQL 過程已成功完成。
SQL> EXEC DBMS_SESSION.SESSION_TRACE_DISABLE
PL/SQL 過程已成功完成。
適用這個過程可以設定包含等待事件和繫結變數的SQL_TRACE,但是這是過程是10g才開始提供的,雖然9i已經存在DBMS_SESSION包,但是沒有SESSION_TRACE_ENABLE過程:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
SQL> exec
dbms_session.session_trace_enable(true, true)
BEGIN dbms_session.session_trace_enable(true, true); END;
*
ERROR at line 1:
ORA-06550: 第 1 行, 第 20 列:
PLS-00302: 必須說明 'SESSION_TRACE_ENABLE' 元件
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
SQL> exec dbms_session.set_sql_trace(true)
PL/SQL procedure successfully completed.
SQL> exec dbms_session.set_sql_trace(false)
PL/SQL procedure successfully completed.
對於9i而言,設定當前會話的SQL_TRACE,且包含繫結變數和等待事件的方法,就只有使用EVENT:
SQL> ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
會話已更改。
SQL> ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';
會話已更改。
SQL> ALTER SESSION SET EVENTS = '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
會話已更改。
SQL> ALTER SESSION SET EVENTS = '10046 TRACE NAME CONTEXT OFF';
會話已更改。
設定EVENTS的語法可以省略掉等號,因此上面兩種寫法都可以。
這種方式比較隱晦,因為EVENTS似乎和SQL_TRACE沒有什麼關係,而對於熟悉的DBA而言,EVENTS 10046可能是所有事件中應用最頻繁的,而這種方法使用頻率甚至會超過第一種SQL_TRACE的方法。同樣這種方法對於所有的版本都有效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-700776/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設定會話TRACE的方法(二)會話
- listener trace的一些設定
- 利用sql_trace跟蹤一個指定會話的操作SQL會話
- vertica 設定最大會話數會話
- 使用dbms_monitor.session_trace_enable跟蹤一個會話Session會話
- 設定 oracle event traceOracle
- Oracle會話超時退出設定Oracle會話
- 設定SQL*Plus會話環境SQL會話
- 使用sql trace工具和tkprof來跟會話SQL會話
- oracle Database Event trace 設定OracleDatabase
- -t【Oracle-故障管理】-Trace跟蹤會話和會話執行慢故障分析Oracle會話
- 用JS設定一個人的程式的話JS
- SQL效能的度量 - 會話級別的SQL跟蹤sql_traceSQL會話
- 騰訊會議橫屏如何設定?騰訊會議橫屏設定方法
- 設定Event事件來追蹤Trace事件
- 一個確定trace檔案的指令碼指令碼
- 設定sqlnet.exprire_time=3來清除死的會話SQL會話
- oracle Database Event trace 設定【Blog 搬家】OracleDatabase
- #魔術方法(會話管理)會話
- HTTPS會話裡的敏感Cookie沒有設定Secure屬性HTTP會話Cookie
- sql*plus會話環境相關的引數設定檔案SQL會話
- Cognos會話快取設定(展現實時資料)會話快取
- 獲取當前會話資訊的方法會話
- 【SQL_TRACE】解決普通使用者無法執行SQL_TRACE跟蹤其他會話問題SQL會話
- SQL 的跟蹤方法traceSQL
- 【TRACE】SQL*Net trace 通過windows客戶端設定,你不得不防SQLWindows客戶端
- rman會話中設定nls_date_format和nls_lang會話ORM
- token 會話設計 (JWT)會話JWT
- 跟蹤某一會話發出的 sql 的方法來優化SQL會話SQL優化
- 獲取當前會話資訊的方法(二)會話
- 主的設定方法
- 一句話設定UITextField、UITextview的字數限制和placeholderUITextView
- 同一會話中的多個 WebRequest會話Web
- 單一會話引發的死鎖會話
- Java 設定睡眠的方法Java
- 紅米Note4怎麼設定電話自動錄音方法
- 檢視當前會話session id方法:會話Session
- 使用免費的 AI 自己設計一個會說話的動畫IP形象AI動畫