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

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