Oracle 10046 SQL TRACE
10046是一個Oracle的內部事件(event),透過設定這個事件可以得到Oracle內部執行系統解析、呼叫、等待、繫結變數等詳細的trace資訊,對於分析系統的效能有著非常重要的作用。
設定10046事件的不同級別能得到不同詳細程度的trace資訊,下面就列出各個不同級別的對應作用:
等級 | 二進位制 | 作用 |
---|---|---|
0000 | 無輸出 | |
1 | 0001 | 輸出 ****,APPNAME(應用程式名),PARSING IN CURSOR,PARSE ERROR(SQL解析),EXEC(執行),FETCH(獲取資料),UNMAP,SORT UNMAP(排序,臨時段),ERROR,STAT(執行計劃),XCTEND(事務)等行 |
2 | 0011 | 與等級1完全一樣 |
4 | 0101 | 包括等級1的輸出,加上BIND行(繫結變數資訊) |
8 | 1001 | 包括等級1的輸出,加上WAIT行(等待事件資訊) |
12 | 1101 | 輸出等級1、等級4以及等級8的所有資訊 |
等級1的10046 trace被視為是普通的SQL Trace,而等級4、等級8以及等級12則被稱為Extended SQL Trace,Extended SQL Trace裡面包括了最有用的WAIT資訊,因此在實際中也是用的最多的。
與SQL Trace相關的引數
在開啟10046時間的SQL Trace之前,要先設定好下面幾個引數。
- timed_statistics
- 這個引數決定了是否收集與時間相關的統計資訊,如果這個引數為FALSE的話,那麼SQL Trace的結果基本沒有多大的用處,預設情況下這個引數設定為TRUE。
- max_dump_file_size
- dump檔案的大小,也就是決定是否限制SQL Trace檔案的大小,在一個很忙的系統上面做SQL Trace的話可能會生成很多的資訊,因此最好在會話級別將這個引數設定成unlimited。
- tracefile_identifier
- 給Trace檔案設定識別字串,這是個非常有用的引數,設定一個易讀的字串能更快的找到Trace檔案。
要在當前會話修改上述引數很簡單,只要使用下面的命令即可:
1
2
3
|
ALTER
SESSION
SET
timed_statistics=
true
ALTER
SESSION
SET
max_dump_file_size=unlimited
ALTER
SESSION
SET
tracefile_identifier='my_trace_session
|
10046 Trace啟動方法
使用sql_trace引數
sql_trace應該是簡單快捷的開啟Trace的方法了,不過透過sql_trace只能開啟級別為1的Trace,而無法開啟其他更高階的Trace。
session 級別: alter session set events ‘10046 trace name context forever,level X’;
system 級別 : alter system set events ‘10046 trace name context forever,level X’;
針對非本會話的 某一個程式設定,如果你知道他的SPID 作業系統程式號
oradebug setospid SPID;
oradebug event 10046 trace name context forever, level X;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14377/viewspace-2286146/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle SQL Trace 和 10046 事件OracleSQL事件
- 讀懂Oracle 10046 SQL TRACEOracleSQL
- Oracle SQL Trace 和10046 事件OracleSQL事件
- oracle sql trace與10046淺談OracleSQL
- Maclean教你讀Oracle 10046 SQL TRACEMacOracleSQL
- ORACLE TRACE 10046Oracle
- Oracle 11g新SQL Trace 10046方法OracleSQL
- sql_trace/ 10046 整理SQL
- sql_trace and 10046事件SQL事件
- Event 10046 - Enable SQL Statement TraceSQL
- 跟蹤SQL - SQL Trace 及 10046 事件SQL事件
- 單個SQL語句的10046 traceSQL
- sql_trace、10046、10053、tkprofSQL
- 如何使用SQL_TRACE和10046事件SQL事件
- How to read Oracle 10046 trace fileOracle
- 拜年+散分貼《Oracle SQL_TRACE和10046事件優化SQL例項》OracleSQL事件優化
- 利用10046事件收集SQL的trace檔案事件SQL
- SQL TRACE和TKPROF,10046的使用步驟SQL
- Oracle sql trace用法OracleSQL
- Oracle中開啟10046 Trace的各種方法Oracle
- oracle“SQL Trace”簡介OracleSQL
- 10046 trace詳解(1)
- 使用SQL_TRACE /10046進行資料庫診斷SQL資料庫
- Oracle中開啟10046 Trace的各種方法[轉]Oracle
- 只對某個特定的SQL語句開啟10046 traceSQL
- oracle sql tuning 14 --10046OracleSQL
- Oracle中開啟trace 10046 event 的各種方法[zt]Oracle
- 如何收集用來診斷效能問題的10046 Trace(SQL_TRACE) (文件 ID 1523462.1)SQL
- ZT 自動10046 trace指令碼指令碼
- Oracle診斷案例-Sql_traceOracleSQL
- Oracle SQL_TRACE使用小結OracleSQL
- oracle sql跟蹤 event 10046 - 轉OracleSQL
- SQL TraceSQL
- ORACLE 使用TRACE進行SQL效能分析OracleSQL
- ORACLE中SQL TRACE和TKPROF的使用OracleSQL
- Oracle SQL 跟蹤 --- dbms_system.set_sql_trace_in_sessionOracleSQLSession
- SQL_TRACESQL
- 使用oracle的10046事件跟蹤SQL語句Oracle事件SQL