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

php中文网
发布: 2016-06-07 17:33:54
原创
1210人浏览过

在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;

Logomaster.ai
Logomaster.ai

Logo在线生成工具

Logomaster.ai 99
查看详情 Logomaster.ai

此段程序会先打开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客户端

linux

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号