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

首頁 > 數據庫 > Oracle > 正文

Oracle PL/SQL Profiler應用指南

2024-08-29 13:28:55
字體:
來源:轉載
供稿:網友

oracle pl/sql profiler應用指南




 


profiler是oracle pl/sql 的一個調試優化跟蹤方案的應用



    相對sqltrace+tkprof工具調試優化跟蹤方案來說, profiler有最直觀更方便的優點,因為不需要生成和讀取服務器端的跟蹤文件,它是將跟蹤數據全部存儲的數據庫表里,所以也得到了一些第三方工具的支持,如pl/sql developer 。



    注:profiler生成的跟蹤信息遠遠沒有trace生成的詳細,它沒有執行計劃、沒有cpu及io 信息,它只是生成主要的執行時間信息,所以分析起來比較快,比較直觀,可以讓我們以最快的時間定位要優化的sql。




 


下面將介紹oracle pl/sql profiler的詳細應用




 


1、安裝



安裝總共要運行兩個oralce自帶的服務腳本



(1)、創建profiler的基礎結構



    @$oracle_home/rdbms/admin/proftab.sql;



            proftab.sql會在當前用戶下創建如下表結構及序列:



                plsql_profiler_runs  - profiler運行信息



                plsql_profiler_units - profiler每個單元信息



                plsql_profiler_data  - profiler每個單元的詳細數據



                plsql_profiler_runnumber 用來生成profiler唯一運行編號的序列



                   



(2)、創建數據庫服務運行包



    @$oracle_home/rdbms/admin/profload.sql;



            profload.sql主要是創建sys.dbms_profiler包



            包主要的函數過程有



           



                start_profiler,



                stop_profiler,



                pause_profiler,



                resume_profiler,



                flush_data,



                internal_version_check,



                get_version,



                rollup_unit,



                rollup_run



           



            主要使用的函數是



                start_profiler--啟動 profiler



                stop_profiler--停止 profiler



                其它為一些輔助函數



2、應用實例        



declare



  v_run_number integer;



  v_temp1 integer;



begin



  --1.啟動profiler



  sys.dbms_profiler.start_profiler(run_number => v_run_number);



  --顯示當前跟蹤的運行序號(后面查詢要用)



  dbms_output.put_line('run_number:'||v_run_number);



  --2.運行要跟蹤的pl/sql



  --select count(*) into v_temp1 from scott.emp t;



  --select count(*) into v_temp1 from scott.dept t;



  --3.停止profiler



  sys.dbms_profiler.stop_profiler;



end;




 


3、查詢結果



select u.unit_name,--單元名稱



       d.line,--代碼行號



       d.total_time,--總共運行時間(單位:10000億分之一秒)



       d.total_occur,--總共運行次數



       d.min_time,--最小運行時間



       d.max_time,--最大運行時間



       s.text--源代碼



  from plsql_profiler_data d, sys.all_source s, plsql_profiler_units u



 where d.runid = 33--運行號v_run_number



   and u.runid = d.runid



   and d.unit_number = u.unit_number



   and d.total_occur <> 0



   and s.type(+) = u.unit_type



   and s.owner(+) = u.unit_owner



   and s.name(+) = u.unit_name



   and d.line# = nvl(s.line, d.line#)



 order by u.unit_number, d.line#




 


    以上介紹的是通過手工方法應用profiler,使用相對比較煩雜,最后查詢也不直觀,下面將詳細介紹在pl/sql developer 應用profiler




 


1、 打開test window



    方法一、新建一個test window



    方法二、選擇要跟蹤運行的過程,快捷菜單test,如下圖所示




 


在test window中輸入你要執行的pl/sql腳本










 


2、打開profiler,如下圖所示



    如果在打開profiler出現出錯提示則說明你沒有安裝profiler,詳細安裝步驟見上文的安裝過程。









3、f8執行腳本,執行完成后,切換到profiler選項卡,如下圖所示









每列的詳細意義如下:



       unit --單元名稱



       line--代碼行號



       total time--總共運行時間(本行代碼的執行時間與最長代碼執行時間的百分比圖)



       occurrences--總共運行次數



       text--源代碼



       average time—平均運行時間



       maximum time--最大運行時間



       minimum time--最小運行時間




 


    列表中顯示的源代碼只顯不一行,如果要定位則可以在對應的行中打開右鍵,選擇



[go to unit line] ,這樣就會直接跳到對應的源代碼位置。




 






工具欄









1、  顯示配置對話框



2、  刷新



3、  刪除當前運行號的數據



4、run:顯示當前的系統的所有profiler列表,缺省為當前的跟蹤



5、unit:顯示本次跟蹤的單元列表信息(執行時間),缺省為所有單元的執行時間




 


配置pl/sql developer 的profiler選項,如下圖所示









    available columns:可用列



    selected columns:選擇要查看的列



    time units:時間單位(秒、毫秒、微秒)



    show 0 occurrences:是否顯示執行0次的處理語句



    graphical time display:用圖形顯示處理時間的顏色深度百分比




 



 


葉正盛



2005-04-17




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 前郭尔| 潞城市| 锡林郭勒盟| 视频| 永兴县| 临沧市| 上杭县| 彰化县| 漳平市| 柳河县| 建湖县| 民权县| 九江县| 长白| 瑞安市| 曲麻莱县| 渭南市| 巴中市| 永丰县| 湄潭县| 平泉县| 固镇县| 天等县| 康保县| 阿瓦提县| 沅江市| 山东省| 宿松县| 融水| 射洪县| 湖北省| 武威市| 弥渡县| 辽阳市| 化州市| 武强县| 历史| 高雄县| 永川市| 永川市| 睢宁县|