您好,登錄后才能下訂單哦!
這篇文章主要介紹數據庫中如何使用10046事件跟蹤SQL,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
10046 事件
概述
這是一個特殊的事件,可以被用來發起sql_trace類的活動
使用10046的優勢就是可以在trace文件中看到詳細的數據庫活動細節,細節信息也取決于事件的level。
level
1:標準的sql_trace
4:level 1加上綁定變量 [ bind=true ]
8:levle 1加上等待。在定位等待事件的時候很有用 [ wait=true ]
12:常用的level,包含了level 1,綁定變量,等待,默認stat line。相當于(4+8)
16:每次執行都生成stat line。11g新增。 [ plan_stat=all_executions ]
32:不生成執行統計。11g新增 。[ plan_stat=never ]
64:Adaptive dump of STAT lines. This dumps the STAT information if a SQL took more than about 1 minute thereby giving information for the more expensive SQLs and for different executions of such SQLs。11gR2新增。 [ plan_stat=adaptive ]
使用10046事件
session級追蹤
—查看trace的位置
SQL> show parameter user_dump_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
user_dump_dest string /u01/app/oracle/diag/rdbms/zld
b/zldb/trace
—tracefile標志
SQL> alter session set tracefile_identifier='liuzhilong';
Session altered.
—開啟10046
SQL> alter session set events '10046 trace name context forever,level 12';
Session altered.
SQL> select * from scott.emp where rownum<=1;
EMPNO ENAME JOB MGR HIREDATE SAL COMM
---------- ---------- --------- ---------- --------- ---------- ----------
DEPTNO
----------
7369 SMITH CLERK 7902 17-DEC-80 800
20
SQL>
退出sqlplus(session級)或者使用以下語句關閉事件
alter session set events '10046 trace name context off’;
[root@lzl Desktop]# cd /u01/app/oracle/diag/rdbms/zldb/zldb/trace/
[root@lzl trace]# ls *liu*
zldb_ora_2990_liuzhilong.trc zldb_ora_2990_liuzhilong.trm
使用oradebug工具
SQL> oradebug setmypid
Statement processed.
SQL> oradebug event 10046 trace name context forever, level 12;
Statement processed.
SQL> select ename from scott.emp where rownum<=1;
ENAME
----------
SMITH
SQL> oradebug tracefile_name;
/u01/app/oracle/diag/rdbms/zldb/zldb/trace/zldb_ora_2990.trc
SQL>
以上是“數據庫中如何使用10046事件跟蹤SQL”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。