您好,欢迎访问一九零五行业门户网

Oracle PLSQL Procedure 如何进行性能调优分析

在java的性能调优分析中,可以使用 jprofiler 分析jvm运行时的cpu消耗、memory占用、thread情况等信息。对于java代码中调用的ora
在java的性能调优分析中,可以使用 jprofiler 分析jvm运行时的cpu消耗、memory占用、thread情况等信息。对于java代码中调用的oracle的存储过程、函数它也能输出调用时间、调用次数等信息,但对于过程、函数内部的性能情况,jprofiler就使不上力了。
在一次调优实战中,,我就遇到了上面的情况,存储过程是性能问题所在,需要调优,这时就要用上 oracle 提供的 dbms_profiler package了。
1. dbms_profiler 是什么?能做什么?它是 oracle 提供的一个用于性能分析的工具包。从oracle document 网站找的定义大致是说:
此package能收集plsql执行时的性能数据,开发人员可以使用这些数据用于程序分析以提高其运行速度。开发人员可以在一个session中打开此工具,它会记录所有的“数据库对象(function、procedure这样的plsql代码)”的性能分析数据,“数据”包括每句代码的运行次数、运行时间、运行平均时间、最长运行时间、最短运行时间等信息。
2. 使用dbms_profiler对plsql进行性能分析用它进行性能分析的过程大概是这样的:安装dbms_profiler package --》 初始化记录表 --》打开分析开关 --》 执行你的plsql --》去分析表里面找瓶颈所在 --》解决它。
以下详解:
2.1 启用dbms_profiler
先查看是否已安装:
sql> desc dbms_profiler
如没有安装,执行
sql> @@c:\oracle\product\10.2.0\client_1\rdbms\admin\profload.sql
重置记录表,执行
sql> @@c:\oracle\product\10.2.0\client_1\rdbms\admin\proftab.sql
2.2 执行你的plsql
begin
dbms_profiler.start_profiler ('my test‘);
--plsql 放在这里
dbms_profiler.stop_profiler;
end;
此段程序会先打开profiler 的设置,然后执行待测试的代码,最后再关闭profiler。这是一个典型的应用,dbms_profiler也支持“暂停”,‘恢复“的操作:
dbms_profiler.pause_profiler ,dbms_profiler.resume_profiler
然后就跑下这段代码,接下来就可以看分析数据了。
2.3查看分析数据
性能数据会被记录在下面的三张表里:
select * from plsql_profiler_runs ;
select * from plsql_profiler_units ;
select * from plsql_profiler_data;
相关阅读:
oracle 10g 安装后重启系统,用plsql连接报没有监听
ora-03114 plsql过程编译断开连接错误
plsql 连接 oracle简单配置
plsql批量forall操作性能提升详解
使用oracle sqldeveloper连接数据库并创建用户
oracle自带的pl/sql developer导入导出数据
在64位win7系统下安装oracle 11g和oracle sql developer客户端
其它类似信息

推荐信息