专栏首页乐沙弥的世界PL/SQL Profiler 剖析报告生成html

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 条评论
登录 后参与评论

相关文章

  • SQL Tuning Advisor(STA) 到底做了什么?

          SQL Tuing Advisor(STA) 是Automatic Tuning Optimizer(自动优化调整器)的一部分。在前面的文章使用SQ...

    Leshami
  • Linux 6 下编译安装 PHP 5.6

    Leshami
  • PL/SQL --> 语言基础

    PL/SQL是过程化的SQL语言,是ORACLE对SQL语言的扩展,在普通SQL语句的基础上增加了编程语言的特点。使得该语言不仅具有过程编程语

    Leshami
  • ASP.NET Web API标准的“管道式”设计

    ASP.NET Web API的核心框架是一个消息处理管道,这个管道是一组HttpMessageHandler的有序组合。这是一个双工管道,请求消息从一端流入并...

    蒋金楠
  • Docker最全教程之使用PHP搭建个人博客站点(二十二)

    PHP(全名:PHP: Hypertext Preprocessor)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主...

    雪雁-心莱科技
  • Kaggle参赛入门经验

    在数据科学领域,没有人不知道大名鼎鼎的kaggle——人们在这里学习交流,提高自己的技能。对于从业者来说,最好是参加预测任务竞赛来提升自己。对于新手来说,一定要...

    AI研习社
  • 想当黑客?浅谈C语言编程:不会这个知识就别想了!

    看到标题点进来的朋友,应该对黑客这个名词很敏感吧?我想应该是这样的,但是你们知道作为一名黑客需要学习哪些知识吗?小编不是什么大佬,但小编可以明确的告诉你,学习C...

    诸葛青云
  • 【赛题分析】分拣与排序(下)

    分拣与排序 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    EdenChen
  • LeetCode86. 分隔链表

     这道题类似荷兰国旗,说一下做法,最简单的方法就是直接将所有的值保存到数组中,然后对数组进行划分,完了以后再重新插回链表中。但是这道题有一个附加要求,要保留...

    mathor
  • 原创|干货|长文|264亿件包裹怎么破?闪电式自动化分拣技术 细节大起底!

    大家好,我是你们的老朋友,智能仓储物流技术研习社,社长,老K。上周给大家分享了仓储物流中心中的“拆零拣选”的章法和具体方案,这次老K带大家一起来进入下一个环节:...

    老King

扫码关注云+社区

领取腾讯云代金券