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

首頁 > 數據庫 > Oracle > 正文

Oracle PL/SQL Profiler應用指南

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

  
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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石家庄市| 林口县| 新源县| 通海县| 友谊县| 抚松县| 平阴县| 泸定县| 五华县| 定结县| 洪雅县| 南华县| 江山市| 大余县| 泽州县| 武威市| 开封县| 牡丹江市| 稻城县| 河西区| 兴山县| 西贡区| 涟水县| 韶山市| 石门县| 济阳县| 漠河县| 澳门| 保康县| 奎屯市| 南靖县| 依兰县| 东港市| 和顺县| 石景山区| 盘山县| 通州区| 仲巴县| 阿拉善盟| 汉源县| 余干县|