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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 單個SQL語句的10046 traceSQL
- Oracle診斷案例-Sql_traceOracleSQL
- SQL TraceSQL
- Oracle session traceOracleSession
- 【TRACE】如果通過10046跟蹤資料庫效能問題資料庫
- 從10046看Oracle分割槽裁剪Oracle
- 從10046 trace 的trca報告中總結的時間模型示例模型
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- sql_trace相關指令碼SQL指令碼
- [20220323]完善tpt get_trace.sql指令碼.txtSQL指令碼
- 10046事件概述事件
- Oracle清理trace、alert、aud、listener.log檔案Oracle
- oracle清理trace、alert、aud、listener等日誌檔案Oracle
- 10046 tracefile註釋
- 使用SQL_TRACE進行資料庫診斷(轉)SQL資料庫
- 運用Log和Trace檔案排除Oracle Net問題Oracle
- Oracle PL/SQLOracleSQL
- [Oracle]Oracle良性SQL建議OracleSQL
- oracle ebs 根據請求id找到對應trace 檔案Oracle
- 【SQL】Oracle SQL處理的流程SQLOracle
- 【SQL】Oracle SQL共享池檢查SQLOracle
- Oracle SQL處理OracleSQL
- Hacking Oracle with Sql InjectionOracleSQL
- Oracle SQL Model ClauseOracleSQL
- [ORACLE] SQL執行OracleSQL
- 【TRACE】如何設定或動態跟蹤Oracle net偵聽器Oracle
- Oracle SQL精妙SQL語句講解OracleSQL
- Oracle SQL優化之sql tuning advisorOracleSQL優化
- Oracle中的sql hintOracleSQL
- Oracle 常用SQL筆記OracleSQL筆記
- Oracle基本SQL語句OracleSQL
- Oracle SQL調優系列之SQL Monitor ReportOracleSQL
- 【SQL】Oracle 19c SQL隔離詳解(SQL Quarantine)SQLOracle
- oracle 資料庫lsnrctl監聽的日誌路徑和trace檔案Oracle資料庫
- oracle SQL最佳化器SQL Tuning Advisor (STA)OracleSQL
- 【ORACLE】Oracle常用SQL及重點功能說明OracleSQL
- Oracle DG運維常用SQLOracle運維SQL
- Oracle case when改寫SQLOracleSQL