10046事件
使用10046事件可以追蹤數(shù)據(jù)庫或者會(huì)話層面的sql執(zhí)行情況,包括解析、執(zhí)行、抓取的方式,耗用的資源、CPU時(shí)間,等待事件等影響sql執(zhí)行的信息
下面就本人對(duì)其的理解和操作備注下,方便以后的復(fù)習(xí),也希望其他朋友能夠多多指點(diǎn)
一、啟動(dòng)10046前的檢查
10046可以在會(huì)話層面和數(shù)據(jù)庫系統(tǒng)層面執(zhí)行;
1、必須確保timed_statistics為TRUE,這個(gè)參數(shù)可以在會(huì)話級(jí)上進(jìn)行修改。當(dāng)此會(huì)話為false時(shí),收集的數(shù)據(jù)比較有限,所以必須設(shè)置相關(guān)參數(shù)來完善跟蹤文件內(nèi)容;
10046 trace相關(guān)參數(shù)
1.??????????timed_statistics
timed_statistics這個(gè)參數(shù)決定了是否收集與時(shí)間相關(guān)的統(tǒng)計(jì)信息,如果這個(gè)參數(shù)為FALSE的話,那么SQL Trace的結(jié)果基本沒有多大的用處,默認(rèn)情況下這個(gè)參數(shù)設(shè)置為TRUE。
show parameter timed_statistics ;
ALTER SESSION SET timed_statistics=true ;
2.??????????max_dump_file_size
max_dump_file_size這個(gè)參數(shù)指定dump文件的大小,也就是決定是否限制SQL Trace文件的大小,在一個(gè)很忙的系統(tǒng)上面做SQL Trace的話可能會(huì)生成很多的信息,因此最好在會(huì)話級(jí)別將這個(gè)參數(shù)設(shè)置成unlimited。
show parameter max_dump_file_size;
ALTER SESSION SET max_dump_file_size=unlimited ;
3.??????????tracefile_identifier
tracefile_identifier這個(gè)參數(shù)給Trace文件設(shè)置識(shí)別字符串,是個(gè)非常有用的參數(shù),設(shè)置一個(gè)易讀的字串能更快的找到Trace文件。
show parameter??tracefile_identifier;
ALTER SESSION SET tracefile_identifier=’my_trace_session’;
4.??????????diagnostic_dest
diagnostic_dest這個(gè)參數(shù)11g新增的,用于控制存放trace文件與core文件的路徑,默認(rèn)是$ORACLE_BASE目錄。
show parameter diagnostic_dest;?命令用于查看其目錄?
5.??????????user_dump_dest
user_dump_dest參數(shù)指定用戶進(jìn)程trace文件目錄。
show parameter user_dump_dest ;?命令可以產(chǎn)看其目錄
alter system set user_dump_dest ='/U01/app/oracle/diag/rdbms/masterdb/masterdb/trace' scope=both;?命令用于更改其目錄
6.??????????background_dump_dest
background_dump_dest參數(shù)用于后臺(tái)進(jìn)程產(chǎn)生的trace文件存儲(chǔ)目錄下。
show parameter background_dump_dest ;?命令可以查看其目錄
alter system set?background_dump_dest='/U01/app/oracle/diag/rdbms/masterdb/masterdb/trace' scope=both;?命令用于更改其目錄
2、為了確保trace輸出能夠完整進(jìn)行,還要調(diào)整此會(huì)話對(duì)trace文件大小的限制,一般將此限制取消,即將max_dump_file_size設(shè)置為UNLIMITED,或者設(shè)置為一個(gè)很大的闕值。
在滿足了上述條件后,就可以啟用10046event對(duì)會(huì)話進(jìn)行后臺(tái)跟蹤了。
二、開始跟蹤:
select distinct sid from v$mystat;---查看當(dāng)前會(huì)話的sid
alter session set events "10046 trace name context forever, level 1";
level 1:跟蹤sql語句,包括解析、執(zhí)行、提取、提交和回滾等。
level 4:包括變量的詳細(xì)信息
level 8:包括等待事件
level 12:包括綁定變量與等待事件
其中,level 1相當(dāng)于打開了sql_trace;
select b.spid,a.sid,a.serial#,a.machine from v$session a,v$process b where a.paddr =b.addr ?and a.sid = '159'---查詢出的spid為trace文件的文件尾數(shù)字,如:spid=333,trace文件名:orcl_ora_333.trc;
三、結(jié)束事件:
alter session set events "10046 trace name context off";
然后在系統(tǒng)命令中執(zhí)行tkprof,轉(zhuǎn)換trace文件為易讀文件;
轉(zhuǎn)載于:https://www.cnblogs.com/hhaahh/p/9998246.html
總結(jié)
- 上一篇: 中国银行的标志
- 下一篇: 职场人必备的几个PPT进阶小技巧