開啟/檢視 sql trace
1.設定event開啟
<== 重啟/連線斷開後失效,當然,如果是設定event引數,那重啟後肯定還保持
alter session set events '10046 trace name context forever,level 8';
oradebug session_event 10046 trace name context forever, level 12;
alter system set events '10046 trace name context forever,level 8';
SQL> oradebug setospid 20055
Oracle pid: 22, Unix process pid: 20055, image: oracle@zhangqiaoc (TNS V1-V3)
SQL> oradebug eventdump session
10046 trace name CONTEXT level 8, forever
SQL> oradebug eventdump system
10046 trace name CONTEXT level 8, forever
2.通過sql_trace開啟
<== 重啟/連線斷開後失效,當然,如果把引數寫入了spfile,那重啟後肯定還保持
alter session set sql_trace=true;
exec dbms_system.set_bool_param_in_session(148,52,'sql_trace',true);
SQL> oradebug setospid 20096;
Oracle pid: 18, Unix process pid: 20096, image: oracle@zhangqiaoc (TNS V1-V3)
SQL> oradebug DUMP MODIFIED_PARAMETERS 0
Statement processed.
<== trace檔案中
*** 2014-03-11 14:45:43.959
Received ORADEBUG command 'DUMP MODIFIED_PARAMETERS 0' from process Unix process pid: 20101, image:
DYNAMICALLY MODIFIED PARAMETERS:
sql_trace = TRUE
3.dbms包設定
<== 會話級別是斷開就失效,但是其他級別,是一直生效,直到手工關閉
exec dbms_support.start_trace_in_session(148,52,true,true);
exec dbms_support.start_trace(true,true); <== 開啟自己
exec dbms_system.set_sql_trace_in_session(148,52,true);
exec dbms_system.set_ev( 148,52,10046,12,'');
exec dbms_monitor.session_trace_enable(148,52,true,true);
exec dbms_monitor.serv_mod_act_trace_enable(service_name,module_name,action_name,true,true,instance_name);
exec dbms_monitor.client_id_trace_enable(client_id,true,true);
exec dbms_monitor.database_trace_enable(true,true,instance_name)
SQL> select sid,SQL_TRACE from v$session where sql_trace='ENABLED';
SID SQL_TRAC
---------- --------
148 ENABLED
SQL> select * from DBA_ENABLED_TRACES;
TRACE_TYPE
---------------------
PRIMARY_ID
----------------------------------------------------------------
QUALIFIER_ID1
------------------------------------------------
QUALIFIER_ID2 WAITS BINDS INSTANCE_NAME
-------------------------------- ----- ----- ----------------
DATABASE
TRUE FALSE
SQL> select * from wri$_tracing_enabled;
TRACE_TYPE PRIMARY_ID
---------- ----------------------------------------------------------------
QUALIFIER_ID1
------------------------------------------------
QUALIFIER_ID2 INSTANCE_NAME FLAGS
-------------------------------- ---------------- ----------
4 hrdb
w3wp.exe
8
4 hrdb
WorkflowService.exe
8
關閉sql trace,最好是用其對應的方法,或者是同一個類別的方法。否則可能存在無法關閉的現象
<== 重啟/連線斷開後失效,當然,如果是設定event引數,那重啟後肯定還保持
alter session set events '10046 trace name context forever,level 8';
oradebug session_event 10046 trace name context forever, level 12;
alter system set events '10046 trace name context forever,level 8';
SQL> oradebug setospid 20055
Oracle pid: 22, Unix process pid: 20055, image: oracle@zhangqiaoc (TNS V1-V3)
SQL> oradebug eventdump session
10046 trace name CONTEXT level 8, forever
SQL> oradebug eventdump system
10046 trace name CONTEXT level 8, forever
2.通過sql_trace開啟
<== 重啟/連線斷開後失效,當然,如果把引數寫入了spfile,那重啟後肯定還保持
alter session set sql_trace=true;
exec dbms_system.set_bool_param_in_session(148,52,'sql_trace',true);
SQL> oradebug setospid 20096;
Oracle pid: 18, Unix process pid: 20096, image: oracle@zhangqiaoc (TNS V1-V3)
SQL> oradebug DUMP MODIFIED_PARAMETERS 0
Statement processed.
<== trace檔案中
*** 2014-03-11 14:45:43.959
Received ORADEBUG command 'DUMP MODIFIED_PARAMETERS 0' from process Unix process pid: 20101, image:
DYNAMICALLY MODIFIED PARAMETERS:
sql_trace = TRUE
3.dbms包設定
<== 會話級別是斷開就失效,但是其他級別,是一直生效,直到手工關閉
exec dbms_support.start_trace_in_session(148,52,true,true);
exec dbms_support.start_trace(true,true); <== 開啟自己
exec dbms_system.set_sql_trace_in_session(148,52,true);
exec dbms_system.set_ev( 148,52,10046,12,'');
exec dbms_monitor.session_trace_enable(148,52,true,true);
exec dbms_monitor.serv_mod_act_trace_enable(service_name,module_name,action_name,true,true,instance_name);
exec dbms_monitor.client_id_trace_enable(client_id,true,true);
exec dbms_monitor.database_trace_enable(true,true,instance_name)
SQL> select sid,SQL_TRACE from v$session where sql_trace='ENABLED';
SID SQL_TRAC
---------- --------
148 ENABLED
SQL> select * from DBA_ENABLED_TRACES;
TRACE_TYPE
---------------------
PRIMARY_ID
----------------------------------------------------------------
QUALIFIER_ID1
------------------------------------------------
QUALIFIER_ID2 WAITS BINDS INSTANCE_NAME
-------------------------------- ----- ----- ----------------
DATABASE
TRUE FALSE
SQL> select * from wri$_tracing_enabled;
TRACE_TYPE PRIMARY_ID
---------- ----------------------------------------------------------------
QUALIFIER_ID1
------------------------------------------------
QUALIFIER_ID2 INSTANCE_NAME FLAGS
-------------------------------- ---------------- ----------
4 hrdb
w3wp.exe
8
4 hrdb
WorkflowService.exe
8
關閉sql trace,最好是用其對應的方法,或者是同一個類別的方法。否則可能存在無法關閉的現象
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-1107799/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql_trace生成及使用tkprof檢視trace fileSQL
- 利用tkprof檢視trace檔案
- Oracle檢視trace檔案步驟Oracle
- SQL檢視SQL
- 檢視sql對cpu 的開銷SQL
- SQL TraceSQL
- 一個快速檢視trace的小指令碼指令碼
- oracle監聽開啟trace fileOracle
- 只對某個特定的SQL語句開啟10046 traceSQL
- Oracle 檢視sql開幾個並行OracleSQL並行
- win10圖片檢視器在哪裡開啟 window10如何開啟照片檢視器Win10
- SQL_TRACESQL
- linux檢視埠是否已開啟和檢視檔案數Linux
- 如何檢視遠端埠是否開啟
- sql-server檢視SQLServer
- Oracle檢視TOP SQLOracleSQL
- Sql Server系列:檢視SQLServer
- Win10怎麼開啟多工檢視 win10系統開啟多工檢視的方法Win10
- 檢視cpu是否開啟超執行緒執行緒
- Eclipse恢復初始介面&開啟檢視Eclipse
- mysql開啟檢視慢查詢日誌MySql
- linux 如何檢視防火牆是否開啟Linux防火牆
- trace top sql sessionSQLSession
- Oracle sql trace用法OracleSQL
- SQL Server TRACE FLAGSQLServer
- 【轉】 sql_traceSQL
- 使用SQL BAK Reader 小工具檢視SQL Server備份檔案內容(不需要開啟SQL Server)SQLServer
- sql server 檢視tempdb使用的相關檢視SQLServer
- windows10圖片檢視器怎麼開啟照片_win10圖片檢視器開啟照片的方法WindowsWin10
- sql 日誌檢視工具SQL
- 除了TRACE檔案,在哪檢視資料庫的 maxlogfiles ?資料庫
- v$sql檢視和v$sqlarea檢視的構建SQL
- idea 開啟自動編譯以及檢視Problem視窗Idea編譯
- linux檢視是否開啟超執行緒Linux執行緒
- Linux中如何檢視開啟了哪些埠?Linux
- Linux下防火牆開啟相關埠及檢視已開啟埠Linux防火牆
- Microsoft SQL Server Trace FlagsROSSQLServer
- sql_trace的使用SQL