色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

教你如何收集Oracle進程中的SQL跟蹤信息

瀏覽:111日期:2023-11-25 14:12:42
在診斷數據庫系統性能的過程中,總會涉及到跟蹤效率低下的SQL語句,現在就如何跟蹤SQL語句來做一個簡單的總結。 假如我們可以修改應用系統的源代碼,則可以直接在程序中加入如下的語句: 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'; /*在這里編寫應用程序的代碼*/ 5)alter session set events '10046 trace name context off';在上述語句中,語句1)是把該會話的時間統計打開,該參數默認為false.在Oracle 7.3之前的版本中,不能在會話級設置該參數,只能修改初始化文件然后重新啟動數據庫,這樣將在實例級打開時間統計。 語句2)是把跟蹤文件的大小設置成操作系統所答應的最大尺寸,這樣可以防止跟蹤文件在完成所需要的跟蹤之前被填布滿,此外需要注重的是確保存放跟蹤文件的目錄要有足夠的空間,否則將會收到“文件系統已滿”錯誤。 語句3)的作用是使生成的跟蹤文件名稱中包含'POX20031031a'字符串,這樣可以使你很輕易的找到所需的跟蹤文件,該參數在Oracle 8.1.7之后可用。 語句4)和語句5)的作用分別是打開和關閉跟sql跟蹤,你可以在這兩個語句之間寫入應用程序的代碼,這些代碼的執行情況都將被跟蹤。需要注重的是語句4)的level要害字,它用來指定跟蹤級別,一共有0,1,2,4,8,12六個級別可以設置,0相當于關閉跟蹤;1是輸出一般的跟蹤信息,不包括綁定變量和等待信息;2和1相同;4是在級別1的基礎上增加綁定變量信息;8是在級別1的基礎上增加等待信息;級別12是輸出包含級別1,4,8的所有信息。 假如應用程序的代碼無法修改或者是不想去修改,則可以在其他會話中打開對特定會話的跟蹤,方法如下: 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); 打開和關閉跟蹤的第一種方法(Oracle推薦): 3.1)sys.dbms_support.start_trace_in_session (:sid, :serial,waits=>true, binds=>false); /* 在此期間運行要跟蹤的應用程序*/ 4.1)sys.dbms_support.stop_trace_in_session (:sid, :serial); 打開和關閉跟蹤的第二種方法: 3.2)sys.dbms_system.set_ev (:sid, :serial, 10046, 8, ''); /*在此期間運行要跟蹤的應用程序*/ 3.2)sys.dbms_system.set_ev (:sid, :serial, 10046, 0, ''); 以上語句中的:sid和:serial分別代表所要跟蹤的會話的ID和序列號,這些信息可以從V$SESSION視圖的SID和SERIAL#列獲得。打開關閉跟蹤中第一種方法的好處是你不用自己寫10046這個事件號,這樣可以減少錯誤,但是dbms_support程序包在你的數據庫中可能會不存在,這樣就只有用第二種方法了。 到現在為止,我們已經生成了所需要的跟蹤文件,然后我們需要找到該文件來進行分析。跟蹤文件的存放位置只有兩種可能,Oracle參數USER_DUMP_DEST 或者BACKGROUND_DUMP_DEST指定的目錄;文件名稱根據不同的平臺會有所不同,但是在文件名中都會包含會話所對應的操作系統進程(線程)號,也就是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. 本文只對Oracle在使用專用服務器進程(Dedicated Server)模式做了總結,至于的共享服務器(Shared Server)模式和在應用級使用連接池的情況下,收集SQL跟蹤信息的方法會比較復雜,希望有相關經驗的高手來總結。
標簽: Oracle 數據庫
主站蜘蛛池模板: 日本亚洲欧美国产日韩ay高清 | 国产欧美日韩亚洲精品区2345 | 国产草草影院 | 日韩在线视频线视频免费网站 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人香蕉久久久久 | 波多野结衣免费免费视频一区 | 成年人免费的视频 | 性色网址| 国产一级精品高清一级毛片 | 一a一片一级一片啪啪 | 国产乱码精品一区二区三区四川人 | 欧美黄成人免费网站大全 | 91精品国产薄丝高跟在线看 | 亚洲国产高清一区二区三区 | 日本香蕉一区二区三区 | 亚洲最大免费视频网 | 亚洲一区二区影视 | 国产成人亚洲欧美三区综合 | 国模在线播放 | 国产综合视频在线观看一区 | 99视频在线看观免费 | 美女视频黄色在线观看 | 精品欧美一区二区在线观看欧美熟 | 久久久久久福利 | 亚洲精品一区二区观看 | aaa大片 | 精品国产视频在线观看 | 美女日韩在线观看视频 | 最新久久免费视频 | 成人精品视频在线 | 亚洲最大网站在线 | 九九九国产 | 男女午夜 | 久草久草视频 | 日日摸夜夜搂人人要 | 国产亚洲精品免费 | 亚洲国产欧美精品 | 成人欧美视频在线观看播放 | 久久久久国产精品免费免费 | 视频一区二区在线 | 日韩三级免费观看 |