使用10046跟蹤sql語句
--1. 在全域性設定
在引數檔案中增加:
event="10046 trace name context forever,level 12"
此設定對所有使用者的所有程式生效、包括後臺程式.(基本不用,會消耗大量系統資源)
--2. 對當前session設定
通過alter session的方式修改,需要alter session的系統許可權:
SQL> alter session set events '10046 trace name context forever,level n';
level 1等同於sql_trace的功能
level 4在level 1的基礎上增加了繫結變數的資訊
level 8在level 1的基礎上增加等待事件的資訊
level 12等於level 4+level 8,即同事收集繫結變數和等待事件
設定跟蹤檔案標示符
alter session set tracefile_identifier=xxx.trc;
檔案生成目錄
在Oracle 10g中,SQL_TRACE生成的trace檔案預設路徑是:$ORACLE_BASE/admin/SID/udump.
到了11g,trace 預設路徑在:$ORACLE_BASE/diag/rdbms/orcl/orcl/trace目錄下.
select * from v$diag_info;
使用10046 事件跟蹤其他會話
開啟:exec dbms_monitor.session_trace_enable(1036,8989,waits=>true,binds=>true);
關閉:exec dbms_monitor.session_trace_disable(1036,8989);
開啟:exec sys.dbms_system.set_sql_trace_in_session(1036,8989,true);
關閉:exec sys.dbms_system.set_sql_trace_in_session(1036,8989,false);
1,SET AUTO TRACE (EXPLAIN PLAN)
--輸出優化器的產生的執行計劃(估算值)
2,SQL_TRACE
– SQL實際的執行情況
• 消耗的資源
• 產生的等待事件
• 資料的處理過程
trace檔案詳解
--parsing in cursor 部分
len =========>被分析sql的長度
dep =========>產生遞迴sql的深度
uid =========>user id
otc =========> oracle command type命令型別
lid =========>私有使用者的id
tim =========>時間戳
hv =========> hash value
ad =========>sql address
--stats 部分
id =========>執行計劃的行源號
cnt =========>當前執行返回的行數
pid =========>當前行源號的父號
obj =========>當前操作的物件id
op =========>當前行源的資料訪問操作
--parse, exec, fetch部分
c =========>消耗的cpu時間
e =========>elapesd time的操作的用時
p =========>physical reads物理讀的次數
cr =========>consistent reads一致性方式讀取的資料塊
cu =========>current方式讀取的資料塊
mis =========>cursor miss incache硬分析的次數
r =========>rows處理的行數
dep =========>depth遞迴sql的深度
og =========>optimizer goal優化器模式
tim =========>timestamp 時間戳
注意:
如果sql語句使用dblink,則無法跟蹤到遠端機器的trace資訊。
當sql語句出現效能問題時,可以採取10046事件跟蹤。如果是資料庫效能遇到瓶頸則採取awr報告進行分析。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23073818/viewspace-762370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用oracle的10046事件跟蹤SQL語句Oracle事件SQL
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- phalcon:跟蹤sql語句SQL
- 透過ORADEBUG運用10046事件跟蹤SQL語句事件SQL
- sqlplus 跟蹤sql語句SQL
- 跟蹤SQL - SQL Trace 及 10046 事件SQL事件
- 10046事件跟蹤會話sql事件會話SQL
- oracle sql跟蹤 event 10046 - 轉OracleSQL
- oracle 使用者跟蹤 需要的sql語句總結OracleSQL
- mysql如何跟蹤執行的sql語句MySql
- Oracle 10046跟蹤的使用Oracle
- 【MySQL】如何對SQL語句進行跟蹤(trace)?MySql
- 依據錯誤號來跟蹤sql語句SQL
- SQL效能的度量 - 語句級別的SQL跟蹤autotraceSQL
- [20150527]跟蹤單個sql語句.txtSQL
- 對使用dblink的10046事件跟蹤事件
- SQL效能的度量 - 利用10046事件擴充套件SQL跟蹤SQL事件套件
- 10046 跟蹤其他會話會話
- 使用10046事件跟蹤分析執行計劃事件
- 使用10046跟蹤Oracle前映象資料讀Oracle
- 單個SQL語句的10046 traceSQL
- ORACLE 10046 設定跟蹤事件後無跟蹤檔案Oracle事件
- [20160704]從跟蹤檔案抽取sql語句.txtSQL
- 0624使用10035事件跟蹤無法執行的sql語句事件SQL
- 使用10046 event trace跟蹤全表掃描操作
- SQL跟蹤工具和TKPROF使用SQL
- 跟蹤使用者的SQLSQL
- 啟用跟蹤事件10046---06事件
- [20130226]跟蹤特定IP的sql語句.txtSQL
- [20131031]從跟蹤檔案中抽取sql語句.txtSQL
- 使用sqltrace跟蹤session執行的sqlSQLSession
- 使用10046事件 +10704事件對索引線上重建的跟蹤事件索引
- [20200326]dbms_monitor跟蹤與SQL語句分析.txtSQL
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視.txtSQL
- SQLServer進行SQL跟蹤SQLServer
- 會話級SQL跟蹤會話SQL
- SQL 的跟蹤方法traceSQL
- 【最佳化】10046事件之生成跟蹤檔案事件