国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

10046event 漫步

2024-07-21 02:40:16
字體:
來源:轉載
供稿:網友

  10046event 漫步:
假如你對Oracle性能調優很感愛好或者比較專長,那么你對oracle的10046事件一定不會生疏。10046event是oracle用于系統性能分析時的一個最重要的事件。 當激活這個事件后,將通知oracle kernel追蹤會話的相關即時信息,并寫入到相應trace文件中。這些有用的信息主要包括sql是如何進行解析,綁定變量的使用情況,會話中發生的等待事件等
10046event 可分成不同的級別(level),分別追蹤記錄不同程度的有用信息。對于這些不同的級別,應當注重的是向下兼容的,即高一級的trace信息包含低于此級的所有信息。
 
10046event的追蹤級別大致有:
level 1:跟蹤sql語句,包括解析、執行、提取、提交和回滾等。
level 4:包括變量的具體信息 
level 8:包括等待事件 
level 12:包括綁定變量與等待事件
其中,level 1相當于打開了sql_trace
 
10046event的啟用和關閉:
前提條件:(先確保要event的會話環境符合條件)
1、 必須確保timed_statistics為TRUE,這個參數可以在會話級上進行修改。
2、 為了確保trace輸出能夠完整進行,還要調整此會話對trace文件大小的限制,一般將此限制取消,即將max_dump_file_size設置為UNLIMITED,或者設置為一個很大的闕值。
在滿足了上述條件后,就可以啟用10046event對會話進行后臺跟蹤了。
 
這里還有幾種方式來啟用10046event:
一種是在當前會話啟用event,可以利用alter session + 事件名稱 + level,
如:sql>alter session set event ‘10046 trace name context forever, level 12’; 
 
另外一種是啟用別的會話進行event跟蹤,可以利用oracle提供的dbms_system來完成。
如:sql>exec dbms_system.set_ev(sid,serial#,10046,12,’’);
 
注重:
sql>exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
相當于打開了sql_trace。
 
event的關閉:
可以在通過下面的語句來關閉當前會話的event:
sql>alter session set event ‘10046 trace name context off’;
 
也可以利用dbms_system包來關閉某個會話的event:
sql>execute dbms_system.set_ev(sid,serial#,0,’’);
 
這里應當值得一提的是,TRACE將消耗相當的系統資源,因此我們在使用TRACE的時候應當慎重。對于正式的系統,應當只在必要的時候進行TRACE操作,并且應當及時關閉。
 
當利用事件trace完當前或某個session后,接下來我們的工作就是找到oracle生成的trace了。Oracle的初始化文件中user_dump_dest參數的設置將決定trace文件的生成位置。
 
從trace文件中查找和發現有用的信息,然后尋找必要的性能調整點并進行相應的調整:
大部分情況下,通過10046事件trace到文件里的信息包含了此會話中存在的性能問題,可以根據trace到的等待事件、SQL語句執行情況以及綁定變量的使用情況來進行分析和查找。
 
oracle提供了一個工具tkPRof來對trace文件進行格式的翻譯,以便trace文件中記錄的信息能夠被我們輕易把握和獲取。
 
 
小知識:
檢查當前會話的sql_trace狀態或級別:
SQL>set serveroutput on
2 declare i_event number;
3 begin
3 sys.dbms_system.read_ev(10046,i_event);
  4 dbms_output.put_line(‘the session sql_trace level is: ‘i_event);
  5 end;
6  /
the session sql_trace level is: 12
 
PL/SQL 過程已成功完成。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒲江县| 阿合奇县| 洛宁县| 溆浦县| 达孜县| 景东| 武宣县| 门源| 无锡市| 治多县| 富蕴县| 合水县| 自治县| 雅江县| 上虞市| 曲麻莱县| 随州市| 措美县| 嘉兴市| 阆中市| 门源| 宕昌县| 贵州省| 淄博市| 郯城县| 平和县| 环江| 腾冲县| 靖远县| 错那县| 锦州市| 西乡县| 屏东市| 宜章县| 台中市| 额济纳旗| 弋阳县| 安吉县| 隆德县| 咸丰县| 尚义县|