`
itspace
  • 浏览: 978653 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle性能优化工具profiler

阅读更多
Oracle提供了profiler工具包,利用该工具包可以查看PL/SQL执行过程中各模块的性能。使用方法可以参考metalink doc 243755.1。本文主要简单介绍其使用方法。
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

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

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

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


0
1
分享到:
评论

相关推荐

    Oracle PL/SQL PRofiler应用指南

    在Oracle数据库中,调试与性能优化是一项重要的工作。为了帮助开发人员和DBA更好地理解并优化PL/SQL代码的执行效率,Oracle提供了多种工具,其中之一就是PL/SQL Profiler。相比于传统的SQL Trace结合Tkprof的调试...

    oracle优化工具

    总的来说,`DBMS_PROFILER`是Oracle数据库性能优化的重要工具,通过它我们可以深入了解PL/SQL代码的执行情况,从而有效地定位和解决问题,提升系统的整体性能。在实际工作中,配合良好的数据库设计和规范的编码习惯...

    oracle数据库性能优化

    Oracle数据库性能优化是一个复杂而重要的主题,涉及到许多层面,包括SQL查询优化、索引策略、存储结构、资源管理以及数据库架构调整等。以下是对这些关键领域的详细解释: 1. **SQL查询优化**:SQL是数据库操作的...

    数据库性能优化工具.rar

    本压缩包"数据库性能优化工具.rar"包含针对Oracle、SQL和MySQL这三种主流数据库的性能优化工具,旨在帮助管理员和开发人员提升数据库运行效率,降低响应时间,以及优化资源利用率。 Oracle数据库性能优化: Oracle...

    Oracle 数据库性能优化

    此外,建议学习者关注最新的Oracle版本特性,因为随着技术的发展,新的版本往往包含更高效的性能优化工具和技术。 **1.2 工具推荐** - **Statspack**: 是一个非常强大的性能监控工具,可以帮助用户识别系统性能...

    (Oracle数据库性能优化

    5. **数据库调优工具**:Oracle提供了强大的诊断工具,如SQL*Profiler、AWR(Automatic Workload Repository)、ASH(Active Session History)等,帮助识别性能瓶颈。 6. **内存管理**:SGA(System Global Area)...

    ORACLE_SQL性能优化

    - **优化工具**:如SQL Profiler、Explain Plan等辅助分析和优化。 4. **Oracle的执行计划**: - **获取执行计划**:通过EXPLAIN PLAN语句或DBMS_XPLAN包来查看。 - **分析执行计划**:理解行源、成本、访问路径...

    oracle性能调整

    总的来说,Oracle性能调整是一个复杂而重要的过程,涉及到数据库架构、SQL优化、内存管理、系统监控等多个方面。通过深入理解这些知识点,并结合实际操作经验,可以有效地提高Oracle数据库的运行效率,从而提升整个...

    ORACLE存储过程性能优化技巧

    以下是一些关于"ORACLE存储过程性能优化技巧"的关键知识点: 1. **绑定变量**:使用绑定变量可以减少解析次数,提高执行效率。当存储过程中的参数作为SQL查询的一部分时,应避免直接拼接字符串,而是使用?作为占位...

    profiler 工具prof.zip

    "Profiler"工具是Oracle数据库系统中用于性能分析的...总之,"prof.zip"提供的Profiler工具是Oracle数据库性能优化的利器,通过其生成的报告,我们可以深入了解存储过程的执行细节,从而实现高效且有针对性的代码优化。

    oracle性能和脚本

    Oracle性能优化和脚本编写是数据库管理员(DBA)以及数据开发者的核心技能。本文将深入探讨Oracle性能优化的关键概念和技术,以及一些常用的脚本实践。 首先,Oracle性能优化涉及到多个层面,包括SQL查询优化、索引...

    Oracle数据库SQL语句的性能优化.pdf

    总结,Oracle数据库SQL语句的性能优化是一个涉及多方面知识的综合过程,包括索引策略、查询优化器使用、子查询与连接优化、分页查询、存储过程设计、资源管理、SQL语句重构以及利用各种内置工具进行监控和调优。...

    Oracle优化日记:一个金牌DBA的故事 白鳝.扫描版

    南京的死锁问题今日点评优化小技巧 Oracle的死锁优化小技巧 几个常用的与锁相关的脚本5月20日 凌晨的邮件通知短信今日点评优化小技巧 /10028事件优化小技巧 PL/SQL 优化工具profiler5月22日 ODS系统和RAC优化小技巧 ...

    ORACLE_SQL性能优化(全).pptx

    【Oracle SQL性能优化】 在Oracle数据库管理中,SQL性能优化是一项关键任务,它涉及到系统响应时间的提升和并发性的改善,对于确保系统高效运行至关重要。本课程内容专注于应用程序级的Oracle SQL语句调优和管理...

    JAVA代码优化工具

    以下是关于"JAVA代码优化工具"的一些详细知识点: 1. **JProfiler**: JProfiler是一款强大的Java性能分析器,它提供了详细的内存分析,CPU剖析,线程监控等功能。通过可视化界面,开发者可以识别和解决内存泄漏、...

    ORACLE_SQL性能优化(全).ppt

    总之,Oracle SQL性能优化是一个涉及多个层面的复杂过程,需要综合考虑SQL语句的编写、数据库设计、硬件资源和优化工具的使用。开发人员不仅需要理解SQL的执行原理,还要掌握Oracle数据库的特性,以便做出更明智的...

    Oracle 10G数据库性能优化的研究.pdf

    总的来说,Oracle 10G在性能优化方面提供了许多新特性和工具,使得数据库的调优工作更为高效和精准。通过充分利用这些特性,DBA可以更好地管理和优化数据库,以实现更高的系统吞吐量和更快的用户响应时间,从而提高...

    提高数据库性能,提高oracle数据库性能,PCIE FLASH

    Oracle数据库作为世界上最广泛使用的数据库管理系统之一,其性能优化技巧和硬件配合策略是IT专业人员必须掌握的关键技能。 首先,我们来谈谈数据库性能优化。这通常涉及以下几个方面: 1. **查询优化**:通过编写...

    ORACLE 测试工具

    Oracle测试工具是数据库管理员和开发人员在日常工作中用于检测、诊断和优化Oracle数据库性能的关键工具。这些工具提供了对数据库运行状况的深入洞察,帮助找出潜在问题并提高整体系统效率。在给定的“ORACLE 测试...

    Optimizeit+Profiler概览

    Optimizeit+Profiler是一款由IBM公司开发的性能分析工具,主要用于Java应用程序的性能优化。在Java应用开发和维护过程中,性能问题常常是开发者关注的重点,而Optimizeit+Profiler就是这样的一个利器,它能够帮助...

Global site tag (gtag.js) - Google Analytics