PL/SQL Profiler 剖析报告生成html

本文介绍了如何在无法使用图形界面工具的情况下,通过Oracle提供的脚本生成HTML文档来直观呈现PL/SQL代码剖析结果。详细步骤包括配置Profiler环境、执行SQL操作、生成和查看剖析报告,并提供了演示过程和报告样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用图形化界面工具实施PL/SQL Profiler 易用直观,但是并不是所有的环境都可以使用图形界面软件连接到数据库。对于只能在命令行下进行剖析又需要直观呈现剖析结果的情形,Oracle为我们提供了脚本来直接生成html文档。本文即是基于这种情形进行演示并加以说明。
    有关PL/SQL Profiler的文章可以参考:
        使用 DBMS_PROFILER 定位 PL/SQL 瓶颈代码
        对比 PL/SQL profiler 剖析结果
        使用PL/SQL Developer剖析PL/SQL代码

 

1、实施PL/SQL Profiler步骤
--下面的步骤直接参考了Metalink文档(ID 243755.1)
a、If needed, create the PL/SQL Profiler Tables under your application schema: @?/rdbms/admin/proftab.sql
b、If needed, install the DBMS_PROFILER API, connected as SYS: @?/rdbms/admin/profload.sql
c、Start PL/SQL Profiler in your application: EXEC DBMS_PROFILER.START_PROFILER('optional comment');
d、Execute your transaction to be profiled. Calls to PL/SQL Libraries are expected.
e、Stop PL/SQL Profiler: EXEC DBMS_PROFILER.STOP_PROFILER;
f、Connect as your application user, execute script profiler.sql provided in this document: @profiler.sql
g、Provide to profiler.sql the "runid" out of a displayed list.
h、Review HTML report generated by profiler.sql.

 

2、演示PL/SQL Profiler

  1. --由于我们已经配置好了Profiler,因此下面直接进行剖析  
  2. a、开始Profiler  
  3. XXX_ADMIN@SYBO2> EXEC DBMS_PROFILER.START_PROFILER('PREPARE TRADE TBL ');  
  4.   
  5. PL/SQL procedure successfully completed.  
  6.   
  7.   
  8. b、执行需要剖析的过程  
  9. XXX_ADMIN@ORAID> DECLARE   
  10.   2    TRADE_DATE_IN VARCHAR2(32767);  
  11.   3    ERR_NUM NUMBER;  
  12.   4    ERR_MSG VARCHAR2(32767);  
  13.   5    
  14.   6  BEGIN   
  15.   7    TRADE_DATE_IN := '20130911';  
  16.   8    ERR_NUM := NULL;  
  17.   9    ERR_MSG := NULL;  
  18.  10    
  19.  11    XXX_ADMIN.XXX_GEN_DTL_PKG.PREPARE_TRADE_DTL_TBL ( TRADE_DATE_IN, ERR_NUM, ERR_MSG );  
  20.  12    COMMIT;   
  21.  13  END;   
  22.  14  /  
  23.   
  24. PL/SQL procedure successfully completed.  
  25.   
  26.   
  27. c、停止profiler  
  28. XXX_ADMIN@ORAID> EXEC DBMS_PROFILER.STOP_PROFILER;  
  29.   
  30. PL/SQL procedure successfully completed.  
  31.   
  32. --Author : Leshami  
  33. --Blog   : http://blog.youkuaiyun.com/leshami  
  34.   
  35.   
  36. d、生成Profiler报告  
  37. XXX_ADMIN@ORAID> @profiler  
  38.   
  39.  RUNID RUN_OWNER                 RUN_DATE        RUN_COMMENT  
  40. ------ ------------------------- --------------- ------------------------------  
  41.      3 XXX_ADMIN                29-SEP-13 11:53 PREPARE TRADE TBL  
  42.   
  43.   
  44. Parameter 1:  
  45. RUNID (required)  
  46.   
  47. Enter value for 1: 3    --->输入对应的Profiler的运行ID  
  48.   
  49. Value passed:  
  50. ~~~~~~~~~~~~  
  51. RUNID: "3"  
  52.   
  53. PROFILER file has been created:  
  54. profiler_SID_xxxxxdb01uv_10.2.0.3.0_20130929_115525.html.  


3、Profiler剖析报告结果样例

   

 

    单击相关的top下对应的id,或者Total Time对应的链接即可跳转到相应的代码部分,如下:

 

   

 

Forward from http://blog.youkuaiyun.com/leshami/article/details/12426469


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值