Profiler使用简介

总是有开发人员问某个存储过程的性能下降了,当存储过程的代码很长的时候,想找出某行代码性能下降非常消耗时间。这时profiler和10046都是比较好的工具来定位问题。

Profiler是用来收集plsql代码中每一行代码运行的性能数据。这些数据保护每行代码执行了多少次,总共花了多少时间,最大和最小时间。而且不用修改代码和debug。

Profiler的安装很简单。

1. 首先要创建dbms_profiler的package。dbms_profiler是用来开始和结束profiling的。以sysdba的权限运行$ORACLE_HOME/rdbms/admin/profload.sql,安装完后,使用desc dbms_profiler来验证是否安装成功。

2. 创建完dbms_profiler package后,还需要创建保存每行代码性能数据的表。以执行package的用户运行$ORACLE_HOME/rdbms/admin/proftab.sql来创建。

运行完成后,下列表将会生成。
表:PLSQL_PROFILER_RUNS
表:PLSQL_PROFILER_UNITS
表:PLSQL_PROFILER_DATA
序列号:PLSQL_PROFILER_RUNNUMBER

Profiler的使用也很简单。

begin
   DBMS_PROFILER.START_PROFILER('TEST_PROFILER');
   TEST_PROC;
   DBMS_PROFILER.STOP_PROFILER();
end;
/

查看Profiler执行的性能数据:

SELECT u.runid, u.unit_number, u.unit_type, u.unit_owner, u.unit_name, 
       d.line#, d.total_occur, d.total_time, d.min_time, d.max_time 
FROM   plsql_profiler_units u 
       JOIN plsql_profiler_data d ON u.runid=d.runid AND u.unit_number=d.unit_number 
WHERE  u.runid=2 
ORDER BY u.unit_number, d.line#; 

也可以用profiler.sql生成html形式的报告。

具体请参考metalink note 243755.1

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25105315/viewspace-757837/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25105315/viewspace-757837/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值