- 浏览: 981795 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
孤星119:
好熟悉的数据库字段啊, 上家公司做的项目每天都跟这些字段打招呼 ...
Oracle exp compress参数引起的空间浪费 -
itspace:
quxiaoyong 写道遇到个问题,网上一搜,全他妈这篇文章 ...
数据库连接错误ORA-28547 -
quxiaoyong:
遇到个问题,网上一搜,全他妈这篇文章。你转来转去的有意思吗?
数据库连接错误ORA-28547 -
hctech:
关于version count过高的问题,不知博主是否看过ey ...
某客户数据库性能诊断报告 -
itspace:
invalid 写道写的不错,我根据这个来安装,有点理解错误了 ...
AIX 配置vncserver
Oracle提供了profiler工具包,利用该工具包可以查看PL/SQL执行过程中各模块的性能。使用方法可以参考metalink doc 243755.1。本文主要简单介绍其使用方法。
1、进入业务用户,查看dbms_profiler是否已安装,如没有安装则需执行安装脚本profiler.sql
可以看到本数据库中已安装dbms_profiler
2、创建数据字典,用于存放统计数据
3、跟踪PL/SQL模块性能,如本例所示addemp为需要跟踪的PL/SQL模块
SQL> BEGIN
2 DBMS_PROFILER.START_PROFILER('only test hr procedure');
3 addemp;
4 DBMS_PROFILER.STOP_PROFILER;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> @profiler.sql
RUNID RUN_DATE
---------- ---------------------------
RUN_COMMENT
--------------------------------------------------------------------------------
1 15-JUL-10 14:11:54
only test hr procedure
Usage:
sqlplus apps/<pwd>
SQL> START profiler.sql <runid>
Enter value for 1: 1
也可以用以下SQL进行查询
5、跟踪完成后,可在当前目录找到profiler_<runid>.htm的l一html文件,里面存放了PLSQL各模块的执行效率。
6、如果要查看PL/SQL的源代码,可以profgsrc.sql脚本查看,执行该脚本后会在当前目录生成存放源代码的sql文件
1、进入业务用户,查看dbms_profiler是否已安装,如没有安装则需执行安装脚本profiler.sql
可以看到本数据库中已安装dbms_profiler
引用
SQL> desc dbms_profiler
FUNCTION FLUSH_DATA RETURNS BINARY_INTEGER
PROCEDURE FLUSH_DATA
PROCEDURE GET_VERSION
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
MAJOR BINARY_INTEGER OUT
MINOR BINARY_INTEGER OUT
FUNCTION INTERNAL_VERSION_CHECK RETURNS BINARY_INTEGER
FUNCTION PAUSE_PROFILER RETURNS BINARY_INTEGER
PROCEDURE PAUSE_PROFILER
FUNCTION RESUME_PROFILER RETURNS BINARY_INTEGER
PROCEDURE RESUME_PROFILER
PROCEDURE ROLLUP_RUN
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_NUMBER NUMBER IN
PROCEDURE ROLLUP_UNIT
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_NUMBER NUMBER IN
UNIT NUMBER IN
FUNCTION START_PROFILER RETURNS BINARY_INTEGER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
RUN_NUMBER BINARY_INTEGER OUT
PROCEDURE START_PROFILER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
RUN_NUMBER BINARY_INTEGER OUT
FUNCTION START_PROFILER RETURNS BINARY_INTEGER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
PROCEDURE START_PROFILER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
FUNCTION STOP_PROFILER RETURNS BINARY_INTEGER
PROCEDURE STOP_PROFILER
FUNCTION FLUSH_DATA RETURNS BINARY_INTEGER
PROCEDURE FLUSH_DATA
PROCEDURE GET_VERSION
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
MAJOR BINARY_INTEGER OUT
MINOR BINARY_INTEGER OUT
FUNCTION INTERNAL_VERSION_CHECK RETURNS BINARY_INTEGER
FUNCTION PAUSE_PROFILER RETURNS BINARY_INTEGER
PROCEDURE PAUSE_PROFILER
FUNCTION RESUME_PROFILER RETURNS BINARY_INTEGER
PROCEDURE RESUME_PROFILER
PROCEDURE ROLLUP_RUN
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_NUMBER NUMBER IN
PROCEDURE ROLLUP_UNIT
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_NUMBER NUMBER IN
UNIT NUMBER IN
FUNCTION START_PROFILER RETURNS BINARY_INTEGER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
RUN_NUMBER BINARY_INTEGER OUT
PROCEDURE START_PROFILER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
RUN_NUMBER BINARY_INTEGER OUT
FUNCTION START_PROFILER RETURNS BINARY_INTEGER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
PROCEDURE START_PROFILER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
RUN_COMMENT VARCHAR2 IN DEFAULT
RUN_COMMENT1 VARCHAR2 IN DEFAULT
FUNCTION STOP_PROFILER RETURNS BINARY_INTEGER
PROCEDURE STOP_PROFILER
2、创建数据字典,用于存放统计数据
引用
SQL> @proftab.sql
drop table plsql_profiler_data cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_units cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_runs cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop sequence plsql_profiler_runnumber
*
ERROR at line 1:
ORA-02289: sequence does not exist
Table created.
Comment created.
Table created.
Comment created.
Table created.
Comment created.
Sequence created.
SQL> desc plsql_profiler_data
Name Null? Type
----------------------------------------- -------- ----------------------------
RUNID NOT NULL NUMBER
UNIT_NUMBER NOT NULL NUMBER
LINE# NOT NULL NUMBER
TOTAL_OCCUR NUMBER
TOTAL_TIME NUMBER
MIN_TIME NUMBER
MAX_TIME NUMBER
SPARE1 NUMBER
SPARE2 NUMBER
SPARE3 NUMBER
SPARE4 NUMBER
drop table plsql_profiler_data cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_units cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop table plsql_profiler_runs cascade constraints
*
ERROR at line 1:
ORA-00942: table or view does not exist
drop sequence plsql_profiler_runnumber
*
ERROR at line 1:
ORA-02289: sequence does not exist
Table created.
Comment created.
Table created.
Comment created.
Table created.
Comment created.
Sequence created.
SQL> desc plsql_profiler_data
Name Null? Type
----------------------------------------- -------- ----------------------------
RUNID NOT NULL NUMBER
UNIT_NUMBER NOT NULL NUMBER
LINE# NOT NULL NUMBER
TOTAL_OCCUR NUMBER
TOTAL_TIME NUMBER
MIN_TIME NUMBER
MAX_TIME NUMBER
SPARE1 NUMBER
SPARE2 NUMBER
SPARE3 NUMBER
SPARE4 NUMBER
3、跟踪PL/SQL模块性能,如本例所示addemp为需要跟踪的PL/SQL模块
引用
SQL> BEGIN
2 DBMS_PROFILER.START_PROFILER('only test hr procedure');
3 addemp;
4 DBMS_PROFILER.STOP_PROFILER;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> @profiler.sql
RUNID RUN_DATE
---------- ---------------------------
RUN_COMMENT
--------------------------------------------------------------------------------
1 15-JUL-10 14:11:54
only test hr procedure
Usage:
sqlplus apps/<pwd>
SQL> START profiler.sql <runid>
Enter value for 1: 1
也可以用以下SQL进行查询
引用
column unit_name format a15 truncate;
column occured format 999999 ;
column line# format 99999 ;
column tot_time format 999.999999 ;
select p.unit_name, p.occured, p.tot_time, p.line# line,
substr(s.text, 1,75) text
from
(select u.unit_name, d.TOTAL_OCCUR occured,
(d.TOTAL_TIME/1000000000) tot_time, d.line#
from plsql_profiler_units u, plsql_profiler_data d
where d.RUNID=u.runid and d.UNIT_NUMBER = u.unit_number
and d.TOTAL_OCCUR >0
and u.runid= &RUN_ID) p,
user_source s
where p.unit_name = s.name(+) and p.line# = s.line (+)
order by p.unit_name, p.line#;
column occured format 999999 ;
column line# format 99999 ;
column tot_time format 999.999999 ;
select p.unit_name, p.occured, p.tot_time, p.line# line,
substr(s.text, 1,75) text
from
(select u.unit_name, d.TOTAL_OCCUR occured,
(d.TOTAL_TIME/1000000000) tot_time, d.line#
from plsql_profiler_units u, plsql_profiler_data d
where d.RUNID=u.runid and d.UNIT_NUMBER = u.unit_number
and d.TOTAL_OCCUR >0
and u.runid= &RUN_ID) p,
user_source s
where p.unit_name = s.name(+) and p.line# = s.line (+)
order by p.unit_name, p.line#;
5、跟踪完成后,可在当前目录找到profiler_<runid>.htm的l一html文件,里面存放了PLSQL各模块的执行效率。
6、如果要查看PL/SQL的源代码,可以profgsrc.sql脚本查看,执行该脚本后会在当前目录生成存放源代码的sql文件
引用
SQL> @profgsrc.sql addemp
Usage:
sqlplus apps/<pwd>
SQL> START profgsrc.sql <PL/SQL Library name>
NAME TYPE
------------------------------ ------------
ADDEMP PROCEDURE
Elapsed: 00:00:00.01
Generating spool file for PROCEDURE ADDEMP
Usage:
sqlplus apps/<pwd>
SQL> START profgsrc.sql <PL/SQL Library name>
NAME TYPE
------------------------------ ------------
ADDEMP PROCEDURE
Elapsed: 00:00:00.01
Generating spool file for PROCEDURE ADDEMP
- PROF.zip (13 KB)
- 下载次数: 24
发表评论
-
buffer cache 的内部结构
2020-03-18 14:21 584BUFFER CACHE作为数据块的 ... -
Oracle OMC介绍
2020-03-18 13:19 495Oracle管理云服务(OMC)的大数据平台,自动收集的企业 ... -
参加Oracle勒索病毒防范专题培训会议
2019-09-27 17:15 5312019年7月22日,受邀参加Oracle勒索病毒防范专题培训 ... -
记一次内存换IO的Oracle优化
2019-09-27 16:50 835某客户数据库从P595物理 ... -
如何定位Oracle SQL执行计划变化的原因
2019-07-03 14:49 1471性能优化最难的是能够 ... -
如何定位Oracle SQL执行计划变化的原因
2018-10-30 09:24 1185性能优化最难的是能够 ... -
数据库性能优化目标
2018-10-08 10:59 528从数据库性能优化的场 ... -
数据库无法打开的原因及解决办法
2018-10-05 20:45 2145数据库的启动是一个相当复杂的过程。比如,Oracle在启动之前 ... -
怎么样彻底删除数据库?
2018-09-18 11:10 608Oracle提供了drop database命令用来删除数据库 ... -
Oracle减少日志量的方法
2018-09-10 10:17 871LGWR进程将LOG BUFFER中的 ... -
如何快速关闭数据库
2018-09-09 13:14 1240“一朝被蛇咬,十年怕井绳”。在没被“蛇”咬之前,很多DBA喜欢 ... -
关于《如何落地智能化运维》PPT
2018-05-17 10:19 1137在DTCC 2018发表《如何落地智能化运维》演讲,主要内容如 ... -
记录在redhat5.8平台安装oracle11.2容易忽视的几个问题
2018-05-11 19:58 587问题一:ping不通问题 在虚拟机上安装好linux系统后, ... -
《Oracle DBA实战攻略》第一章
2018-05-11 10:42 954即日起,不定期更新《OracleDBA实战攻略》一书电子版,请 ... -
Oracle 12c新特性
2018-05-11 10:33 907查询所有pdb [oracle@gj4 ~]$ sqlplu ... -
关于修改memory_target的值后数据库无法启动的问题
2017-02-28 12:24 3990操作系统:RHEL6.5 数据库版本:11.2.0.4 ... -
10g rac安装error while loading shared libraries libpthread.so.0 问题
2017-02-28 12:22 70311g rac安装在二节点跑脚本一般会报此错误: 解决这个问 ... -
记一次Oracle会话共享模式故障处理过程
2017-02-27 19:16 805故障简述 XXX第八人民医院HIS数据库7月13日11点左右从 ... -
RESMGR:cpu quantum等待事件处理过程
2017-02-27 18:23 2656由于数据库上线过程中出现大量的RESMGR:cpu quant ... -
谈谈log file sync
2014-03-19 14:18 1776数据库中的log file sync等待事件指的是,当user ...
相关推荐
在Oracle数据库中,调试与性能优化是一项重要的工作。为了帮助开发人员和DBA更好地理解并优化PL/SQL代码的执行效率,Oracle提供了多种工具,其中之一就是PL/SQL Profiler。相比于传统的SQL Trace结合Tkprof的调试...
总的来说,`DBMS_PROFILER`是Oracle数据库性能优化的重要工具,通过它我们可以深入了解PL/SQL代码的执行情况,从而有效地定位和解决问题,提升系统的整体性能。在实际工作中,配合良好的数据库设计和规范的编码习惯...
Oracle数据库性能优化是一个复杂而重要的主题,涉及到许多层面,包括SQL查询优化、索引策略、存储结构、资源管理以及数据库架构调整等。以下是对这些关键领域的详细解释: 1. **SQL查询优化**:SQL是数据库操作的...
本压缩包"数据库性能优化工具.rar"包含针对Oracle、SQL和MySQL这三种主流数据库的性能优化工具,旨在帮助管理员和开发人员提升数据库运行效率,降低响应时间,以及优化资源利用率。 Oracle数据库性能优化: Oracle...
此外,建议学习者关注最新的Oracle版本特性,因为随着技术的发展,新的版本往往包含更高效的性能优化工具和技术。 **1.2 工具推荐** - **Statspack**: 是一个非常强大的性能监控工具,可以帮助用户识别系统性能...
5. **数据库调优工具**:Oracle提供了强大的诊断工具,如SQL*Profiler、AWR(Automatic Workload Repository)、ASH(Active Session History)等,帮助识别性能瓶颈。 6. **内存管理**:SGA(System Global Area)...
- **优化工具**:如SQL Profiler、Explain Plan等辅助分析和优化。 4. **Oracle的执行计划**: - **获取执行计划**:通过EXPLAIN PLAN语句或DBMS_XPLAN包来查看。 - **分析执行计划**:理解行源、成本、访问路径...
总的来说,Oracle性能调整是一个复杂而重要的过程,涉及到数据库架构、SQL优化、内存管理、系统监控等多个方面。通过深入理解这些知识点,并结合实际操作经验,可以有效地提高Oracle数据库的运行效率,从而提升整个...
以下是一些关于"ORACLE存储过程性能优化技巧"的关键知识点: 1. **绑定变量**:使用绑定变量可以减少解析次数,提高执行效率。当存储过程中的参数作为SQL查询的一部分时,应避免直接拼接字符串,而是使用?作为占位...
"Profiler"工具是Oracle数据库系统中用于性能分析的...总之,"prof.zip"提供的Profiler工具是Oracle数据库性能优化的利器,通过其生成的报告,我们可以深入了解存储过程的执行细节,从而实现高效且有针对性的代码优化。
Oracle性能优化和脚本编写是数据库管理员(DBA)以及数据开发者的核心技能。本文将深入探讨Oracle性能优化的关键概念和技术,以及一些常用的脚本实践。 首先,Oracle性能优化涉及到多个层面,包括SQL查询优化、索引...
总结,Oracle数据库SQL语句的性能优化是一个涉及多方面知识的综合过程,包括索引策略、查询优化器使用、子查询与连接优化、分页查询、存储过程设计、资源管理、SQL语句重构以及利用各种内置工具进行监控和调优。...
南京的死锁问题今日点评优化小技巧 Oracle的死锁优化小技巧 几个常用的与锁相关的脚本5月20日 凌晨的邮件通知短信今日点评优化小技巧 /10028事件优化小技巧 PL/SQL 优化工具profiler5月22日 ODS系统和RAC优化小技巧 ...
【Oracle SQL性能优化】 在Oracle数据库管理中,SQL性能优化是一项关键任务,它涉及到系统响应时间的提升和并发性的改善,对于确保系统高效运行至关重要。本课程内容专注于应用程序级的Oracle SQL语句调优和管理...
以下是关于"JAVA代码优化工具"的一些详细知识点: 1. **JProfiler**: JProfiler是一款强大的Java性能分析器,它提供了详细的内存分析,CPU剖析,线程监控等功能。通过可视化界面,开发者可以识别和解决内存泄漏、...
总之,Oracle SQL性能优化是一个涉及多个层面的复杂过程,需要综合考虑SQL语句的编写、数据库设计、硬件资源和优化工具的使用。开发人员不仅需要理解SQL的执行原理,还要掌握Oracle数据库的特性,以便做出更明智的...
总的来说,Oracle 10G在性能优化方面提供了许多新特性和工具,使得数据库的调优工作更为高效和精准。通过充分利用这些特性,DBA可以更好地管理和优化数据库,以实现更高的系统吞吐量和更快的用户响应时间,从而提高...
Oracle数据库作为世界上最广泛使用的数据库管理系统之一,其性能优化技巧和硬件配合策略是IT专业人员必须掌握的关键技能。 首先,我们来谈谈数据库性能优化。这通常涉及以下几个方面: 1. **查询优化**:通过编写...
Oracle测试工具是数据库管理员和开发人员在日常工作中用于检测、诊断和优化Oracle数据库性能的关键工具。这些工具提供了对数据库运行状况的深入洞察,帮助找出潜在问题并提高整体系统效率。在给定的“ORACLE 测试...
Optimizeit+Profiler是一款由IBM公司开发的性能分析工具,主要用于Java应用程序的性能优化。在Java应用开发和维护过程中,性能问题常常是开发者关注的重点,而Optimizeit+Profiler就是这样的一个利器,它能够帮助...