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

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