网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.定期分析数据库对象的脚本.
.Oracle10g:数据的导入导出.
.Java使用Oracle遇到的最大游标超.
.Linux 指令大全(3).
.分区大小调整完全手册.
.sendmail出现“MX list for host.
.深入讲解如何使用rollup配合grou.
.Oracle 10g更强大的回闪数据库功.
.案例学习Oracle错误:ORA-00054.
.Oracle维护常用SQL语句.
.甲骨文助陕西重型汽车驶入信息化.
.JDBC连接各种数据库方法.
.充分利用自动撤销管理的优点.
.Oracle中审计参数audit_trail的讨.
.数据库默认临时表空间.
.谁能讲讲WEB发布中使报表异步运行.
.Oracle非法数据库对象引起错误及.
.Oracle诊断案例-Spfile案例一则.
.sqlplus 技巧 spool 指定格式的文.
.详细讲解获得当前"SCN"的几种有效.

Oracle数据库中使用DBMS_PROFILER进行调优

发表日期:2008-5-7


在进行数据库调优时,代码的性能瓶颈至关重要,Oracle数据库提供的DBMS_PROFILER包可以特别方便的发现瓶颈的所在之处。

DBMS_PROFILER在使用之前可能需要安装,具体安装步骤如下:

◆1:执行$ORACLE_HOME/rdbms/admin/profload.sql

◆2:创建一个用于存放跟踪信息的schema

CREATE USER profiler IDENTIFIED BY profiler DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;

GRANT connect TO profiler;

CREATE PUBLIC SYNONYM plsql_profiler_runs FOR profiler.plsql_profiler_runs;

CREATE PUBLIC SYNONYM plsql_profiler_units FOR profiler.plsql_profiler_units;

CREATE PUBLIC SYNONYM plsql_profiler_data FOR profiler.plsql_profiler_data;

CREATE PUBLIC SYNONYM plsql_profiler_runnumber FOR profiler.plsql_profiler_runnumber;

◆3:使用刚刚创建的profiler用户执行如下脚本或代码:

$ORACLE_HOME/rdbms/admin/proftab.sql

GRANT SELECT ON plsql_profiler_runnumber TO PUBLIC;

GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_data TO PUBLIC;

GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_units TO PUBLIC;

GRANT SELECT, INSERT, UPDATE, DELETE ON plsql_profiler_runs TO PUBLIC;

安装成功后测试:

执行

BEGIN

DBMS_PROFILER.START_PROFILER('123');

FOR I IN 1 .. 1000 LOOP

INSERT INTO A VALUES (I || '');

END LOOP;

COMMIT;

DBMS_PROFILER.STOP_PROFILER();

END;

执行后使用下面的代码检查:

SELECT C.LINE#, C.TOTAL_OCCUR, C.TOTAL_TIME, C.MIN_TIME, C.MAX_TIME

FROM PLSQL_PROFILER_RUNS A, PLSQL_PROFILER_UNITS B, PLSQL_PROFILER_DATA C

WHERE A.RUN_COMMENT = '123'

AND B.UNIT_OWNER = ''

AND A.RUNID = B.RUNID

AND A.RUNID = C.RUNID

AND B.UNIT_NUMBER = C.UNIT_NUMBER

注意:每次DBMS_PROFILER.START_PROFILER的输入参数需要改变,否则便不能分别运行后的运行结果了。

除此之外B.UNIT_OWNER =‘’中的约束值如果是在package里面需要是包名,如果是procedure则是procedure的名字。实在在不知道什么名字时可以在PLSQL_PROFILER_UNITS中查一下。

此外,运行结果可以通过PLSQL Developer来观察,需要新建一个test,在profiler中可以查看它的运行结果,示例如下:

上一篇:全面解析Oracle数据库的系统和对象权限 人气:866
下一篇:Oracle数据库SQL语句性能调整的基本原则 人气:902
浏览全部Oracle的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐