国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

如何收集Oracle進(jìn)程中的sql跟蹤信息

瀏覽:4日期:2023-11-20 11:16:23
在診斷數(shù)據(jù)庫系統(tǒng)性能的過程中,總會(huì)涉及到跟蹤效率低下的sql語句,現(xiàn)在就如何跟蹤sql語句來做一個(gè)簡(jiǎn)單的總結(jié)。權(quán)做拋磚引玉之用。 假如我們可以修改應(yīng)用系統(tǒng)的源代碼,則可以直接在程序中加入如下的語句: 1)alter session set timed_statistics=true; /*適用于Oracle 7.3以后的版本*/ 2)alter session set max_dump_file_size=unlimited ; /*適用于Oracle 7.3以后的版本*/ 3)alter session set tracefile_identifier='POX20031031a'; /*適用于Oracle 8.1.7以后的版本*/ 4)alter session set events '10046 trace name context forever, level 8'; /*在這里編寫應(yīng)用程序的代碼*/ 5)alter session set events '10046 trace name context off'; 在上述語句中,語句1)是把該會(huì)話的時(shí)間統(tǒng)計(jì)打開,該參數(shù)默認(rèn)為false.在Oracle 7.3之前的版本中,不能在會(huì)話級(jí)設(shè)置該參數(shù),只能修改初始化文件然后重新啟動(dòng)數(shù)據(jù)庫,這樣將在實(shí)例級(jí)打開時(shí)間統(tǒng)計(jì)。 語句2)是把跟蹤文件的大小設(shè)置成操作系統(tǒng)所答應(yīng)的最大尺寸,這樣可以防止跟蹤文件在完成所需要的跟蹤之前被填布滿,此外需要注重的是確保存放跟蹤文件的目錄要有足夠的空間,否則將會(huì)收到“文件系統(tǒng)已滿”錯(cuò)誤。 語句3)的作用是使生成的跟蹤文件名稱中包含'POX20031031a'字符串,這樣可以使你很輕易的找到所需的跟蹤文件,該參數(shù)在Oracle 8.1.7之后可用。 語句4)和語句5)的作用分別是打開和關(guān)閉跟sql跟蹤,你可以在這兩個(gè)語句之間寫入應(yīng)用程序的代碼,這些代碼的執(zhí)行情況都將被跟蹤。需要注重的是語句4)的level要害字,它用來指定跟蹤級(jí)別,一共有0,1,2,4,8,12六個(gè)級(jí)別可以設(shè)置,0相當(dāng)于關(guān)閉跟蹤;1是輸出一般的跟蹤信息,不包括綁定變量和等待信息;2和1相同;4是在級(jí)別1的基礎(chǔ)上增加綁定變量信息;8是在級(jí)別1的基礎(chǔ)上增加等待信息;級(jí)別12是輸出包含級(jí)別1,4,8的所有信息。 假如應(yīng)用程序的代碼無法修改或者是不想去修改,則可以在其他會(huì)話中打開對(duì)特定會(huì)話的跟蹤,方法如下: 1)sys.dbms_system.set_bool_param_in_session(:sid, :serial,'timed_statistics', true); 2)sys.dbms_system.set_int_param_in_session( :sid, :serial,'max_dump_file_size', 2147483647); 打開和關(guān)閉跟蹤的第一種方法(oracle推薦): 3.1)sys.dbms_support.start_trace_in_session(:sid, :serial,waits=>true, binds=>false); /* 在此期間運(yùn)行要跟蹤的應(yīng)用程序*/ 4.1)sys.dbms_support.stop_trace_in_session(:sid, :serial); 打開和關(guān)閉跟蹤的第二種方法: 3.2)sys.dbms_system.set_ev(:sid, :serial, 10046, 8, ''); /*在此期間運(yùn)行要跟蹤的應(yīng)用程序*/ 3.2)sys.dbms_system.set_ev(:sid, :serial, 10046, 0, ''); 以上語句中的:sid和:serial分別代表所要跟蹤的會(huì)話的ID和序列號(hào),這些信息可以從V$SESSION視圖的SID和SERIAL#列獲得。打開關(guān)閉跟蹤中第一種方法的好處是你不用自己寫10046這個(gè)事件號(hào),這樣可以減少錯(cuò)誤,但是dbms_support程序包在你的數(shù)據(jù)庫中可能會(huì)不存在,這樣就只有用第二種方法了。 到現(xiàn)在為止,我們已經(jīng)生成了所需要的跟蹤文件,然后我們需要找到該文件來進(jìn)行分析。跟蹤文件的存放位置只有兩種可能,Oracle參數(shù)USER_DUMP_DEST 或者BACKGROUND_DUMP_DEST指定的目錄;文件名稱根據(jù)不同的平臺(tái)會(huì)有所不同,但是在文件名中都會(huì)包含會(huì)話所對(duì)應(yīng)的操作系統(tǒng)進(jìn)程(線程)號(hào),也就是V$PROCESS的SPID列(V$PROCESS.SPID) ,該信息可以通過 v$process.addr和v$session.paddr做表連接查詢得到。例如:select spid from v$process p,v$session s where p.addr=s.paddr and s.sid=:sid and s.serial#=:serial. 本文只對(duì)Oracle在使用專用服務(wù)器進(jìn)程(Dedicated Server)模式做了總結(jié),至于的共享服務(wù)器(Shared Server)模式和在應(yīng)用級(jí)使用連接池的情況下,收集sql跟蹤信息的方法會(huì)比較復(fù)雜,希望有相關(guān)經(jīng)驗(yàn)的高手來總結(jié)。
標(biāo)簽: Oracle 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 久久久久久久久久综合情日本 | 日本全黄| 国产成人狂喷潮在线观看2345 | 日韩美女专区中文字幕 | 日韩午夜在线观看 | 日本三片在在线播放 | 真实国产精品视频国产网 | 国产精品一区久久 | 午夜不卡视频 | 国产成人精品午夜免费 | 欧美日中文字幕 | 国产99久久亚洲综合精品 | 777色狠狠一区二区三区 | 性xxx69xxx视频在线观看 | 亚洲一区在线观看视频 | 日本欧美不卡一区二区三区在线 | 日本免费www | 97se狠狠狠狠狠亚洲综合网 | 狠狠综合久久久综合 | 久久经典免费视频 | 免费人成在线观看 | 日本高清视频一区二区 | 色本| 国产精品无圣光一区二区 | 欧美成人亚洲国产精品 | 成年男女拍拍拍免费视频 | 美女视频黄色的免费 | 亚洲综合免费 | 久久最新视频 | 国产成人福利免费观看 | 亚洲成人在线播放视频 | 欧美午夜网| 国产三级网站在线观看 | 日本加勒比网站 | 国产综合亚洲专区在线 | 欧美成人高清 | 亚洲国产精品a在线 | 午夜主播福利视频在线观看 | 国产成人a福利在线观看 | 99精品在线播放 | 午夜两性视频免费看 |