PL/SQL Profiler 剖析报告生成html

    使用图形化界面工具实施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

--由于我们已经配置好了Profiler,因此下面直接进行剖析
a、开始Profiler
XXX_ADMIN@SYBO2> EXEC DBMS_PROFILER.START_PROFILER('PREPARE TRADE TBL ');

PL/SQL procedure successfully completed.


b、执行需要剖析的过程
XXX_ADMIN@ORAID> DECLARE 
  2    TRADE_DATE_IN VARCHAR2(32767);
  3    ERR_NUM NUMBER;
  4    ERR_MSG VARCHAR2(32767);
  5  
  6  BEGIN 
  7    TRADE_DATE_IN := '20130911';
  8    ERR_NUM := NULL;
  9    ERR_MSG := NULL;
 10  
 11    XXX_ADMIN.XXX_GEN_DTL_PKG.PREPARE_TRADE_DTL_TBL ( TRADE_DATE_IN, ERR_NUM, ERR_MSG );
 12    COMMIT; 
 13  END; 
 14  /

PL/SQL procedure successfully completed.


c、停止profiler
XXX_ADMIN@ORAID> EXEC DBMS_PROFILER.STOP_PROFILER;

PL/SQL procedure successfully completed.

--Author : Leshami
--Blog   : http://blog.csdn.net/leshami


d、生成Profiler报告
XXX_ADMIN@ORAID> @profiler

 RUNID RUN_OWNER                 RUN_DATE        RUN_COMMENT
------ ------------------------- --------------- ------------------------------
     3 XXX_ADMIN                29-SEP-13 11:53 PREPARE TRADE TBL


Parameter 1:
RUNID (required)

Enter value for 1: 3    --->输入对应的Profiler的运行ID

Value passed:
~~~~~~~~~~~~
RUNID: "3"

PROFILER file has been created:
profiler_SID_xxxxxdb01uv_10.2.0.3.0_20130929_115525.html.

3、Profiler剖析报告结果样例

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ken的杂谈

Spring Boot入门教程2-2、使用Spring Boot+MyBatis访问数据库(CURD)xml配置版

本项目构建基于:https://ken.io/note/springboot-course-basic-helloworld

15620
来自专栏Strive

zabbix服务zabbix server is not running: the information...

搭建环境 | 系统:centos 7 | Java 1.8 | zabbix 3.4

2.2K40
来自专栏杨建荣的学习笔记

使用shell定制addm脚本(r3笔记第88天)

在10g开始推出的addm对于工作中的调优能够提供很多的帮助,而且建议也更加客观和全面。但是使用addmrpt.sql的时候还是有些慢, 可以使用如下的脚本来定...

23240
来自专栏杨建荣的学习笔记

redo日志文件学习(22天)

关于redo日志文件,今天因为要做redo日志的在线迁移,所以特意做了个简单的总结。 1. 如果要把redo的切换信息显示到alert日志中,需要设置个参数。...

36750
来自专栏杨建荣的学习笔记

关于exp statistics的问题和简单测试(82天)

在数据导出的时候,可能会碰到EXP-00091: Exporting questionable statistics.的问题,有时候会让人有点摸不到头脑,不知道...

23780
来自专栏Ken的杂谈

Spring Boot入门教程2-4、使用Spring Boot+MyBatis多数据源配置(xml配置版)

本项目构建基于:https://ken.io/note/springboot-course-basic-curd-xml

36620
来自专栏Ken的杂谈

Spring Boot入门教程2-3、使用Spring Boot+MyBatis多数据源配置(注解版)

本项目构建基于:https://ken.io/note/springboot-course-basic-curd-annotation

12220
来自专栏用户2442861的专栏

Intellij IDEA 14中使用MyBatis-generator 自动生成MyBatis代码

  Intellij IDEA 14 作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Inte...

66610
来自专栏Ken的杂谈

Spring Boot入门教程2-1、使用Spring Boot+MyBatis访问数据库(CURD)注解版

本项目构建基于:https://ken.io/note/springboot-course-basic-helloworld

34130
来自专栏杨建荣的学习笔记

10g升级至11g后数据库无法启动的问题解决

今天升级数据库碰到一个很郁闷的问题,把10g的数据库升级到11g以后,结果有一个改动,需要重启数据库,就敲了shutdown immediate,结果再star...

41760

扫码关注云+社区

领取腾讯云代金券