??? Oracle 10046是一個(gè)Oracle內(nèi)部事件。最常用的是在Session級(jí)別設(shè)置sql_trace(alter session set sql_trace=true)即是開啟了級(jí)別為1
的10046調(diào)試事件。當(dāng)設(shè)置了10046事件之后,Oracle 將產(chǎn)生一個(gè)dump文件。通過得到的dump文件進(jìn)行進(jìn)一步分析,可以得到Oracle 內(nèi)部執(zhí)行系
統(tǒng)解析、調(diào)用、等待、綁定變量等詳細(xì)的trace信息,對(duì)于分析系統(tǒng)的性能有著舉足輕重的作用。
?
一、10046事件的相關(guān)參數(shù)
??該事件需要設(shè)置一些參數(shù)以控制dump文件的輸出:??
??TIMED_STATISTICS
????用于控制計(jì)時(shí)信息,可以設(shè)定為true和false。當(dāng)設(shè)定為true時(shí),計(jì)時(shí)信息將會(huì)被添加到trace文件中。
??
??MAX_DUMP_FILE_SIZE
????用于控制trace文件的最大尺寸。當(dāng)使用10046事件時(shí),建議將該參數(shù)設(shè)定為unlimited。
??
??USER_DUMP_DEST
????用于設(shè)定trace文件寫入到哪個(gè)文件目錄
??
??STATISTICS_LEVEL
????用于控制統(tǒng)計(jì)信息的收集度。此參數(shù)有3個(gè)選擇,baisc,typical,all。
????basic:僅收集滿足trace所需的最基本的信息,象Timed statistics,Object level statistics,以及一些advisory會(huì)被忽略。
????typical:此為缺省值。此設(shè)置將在basic的基礎(chǔ)上增加一些額外的統(tǒng)計(jì)信息,象操作系統(tǒng)耗用時(shí)間的統(tǒng)計(jì)信息,執(zhí)行計(jì)劃的統(tǒng)計(jì)信息都會(huì)被收集
????all:當(dāng)設(shè)置為all時(shí),所有與該session相關(guān)的信息全部會(huì)被收集。
??
??TRACEFILE_IDENTIFIER
????用于設(shè)置識(shí)別Trace文件的字符串,便于更快捷的找到生成的Trace文件。
??以上參數(shù)可以基于系統(tǒng)級(jí)別以及會(huì)話級(jí)別進(jìn)行修改。
????ALTER SESSION/SYSTEM SET timed_statistics=true
????ALTER SESSION/SYSTEM SET max_dump_file_size=unlimited
????ALTER SESSION SET tracefile_identifier='trace_sql_example'?? -->僅session級(jí)別
????
??為特定的session動(dòng)態(tài)設(shè)定trace相關(guān)參數(shù),借助DBMS_SYSTEM包
???? sys.DBMS_SYSTEM.set_bool_param_in_session( &sid
????????????????????????????????????????????? , &serial
????????????????????????????????????????????? , 'timed_statistics'
????????????????????????????????????????????? , TRUE );
???? sys.DBMS_SYSTEM.set_int_param_in_session( &sid
???????????????????????????????????????????? , &serial
???????????????????????????????????????????? , 'max_dump_file_size'
???????????????????????????????????????????? , 2147483647 );??
??
二、10046調(diào)試事件的等級(jí)
??10046調(diào)試事件可以分為多個(gè)不同的等級(jí),不同的等級(jí)輸出不同的trace信息。
??等級(jí)?? 作用
??0????? 禁止調(diào)試事件
??1????? 調(diào)試事件處于激活狀態(tài)。針對(duì)每個(gè)被處理的數(shù)據(jù)庫(kù)調(diào)用,輸出SQL語句,APPNAME(應(yīng)用程序名),PARSING IN CURSOR,PARSE ERROR(SQL解析)
??????,EXEC(執(zhí)行),FETCH(獲取數(shù)據(jù)),UNMAP,SORT UNMAP(排序,臨時(shí)段),ERROR,STAT(執(zhí)行計(jì)劃),XCTEND(事務(wù))等行。
??4????? 包括等級(jí)1的輸出,加上BIND行(綁定變量信息)
??8????? 包括等級(jí)1的輸出,加上WAIT行(等待事件信息)。對(duì)于處理過程中的每個(gè)等待,提供如下信息:等待時(shí)間的名字,持續(xù)時(shí)間,以及一些額外
???????? 的參數(shù),可表明所等待的資源。
??12???? 輸出等級(jí)4以及等級(jí)8的所有信息
?
三、激活10046調(diào)試事件
??4.基于組件級(jí)別與數(shù)據(jù)庫(kù)級(jí)別的跟蹤(略) 參考: http://docs.oracle.com/cd/E11882_01/appdev.112/e10577/d_monitor.htm
?
四、演示10046調(diào)試事件?
五、更多參考 ??????
父游標(biāo)、子游標(biāo)及共享游標(biāo)
dbms_xplan之display_cursor函數(shù)的使用
使用 EXPLAIN PLAN 獲取SQL語句執(zhí)行計(jì)劃
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
