对比 PL/SQL profiler 剖析结果


使用PL/SQL PROFILER 剖析PL/SQL代码是快速定位PL/SQL代码段最有效的方法。在上一篇文章使用PL/SQL PROFILER 定位 PL/SQL 瓶颈代码中描述了安装PROFILER,并给出了剖析的示例。本文参照了Tom大师的代码来对比剖析前后的性能并附上其代码。

使用PL/SQL PROFILER 定位 PL/SQL 瓶颈代码 

1、用于实施剖析的存储过程

--环境
sys@USBO> select * from v$version where rownum<2;

BANNER
------------------------------------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

--用于实施剖析的原过程,下面是使用字面量的过程,注意代码中包含了启用与停止profiler
scott@USBO> create or replace procedure binds
  2  is
  3  v_num number;
  4  begin
  5  dbms_profiler.start_profiler('binds');
  6  for i in 1..100000 loop
  7    v_num := dbms_random.random;
  8    insert into t1 values (v_num,v_num);
  9  end loop;
 10  dbms_profiler.stop_profiler;
 11  end;
 12  /

Procedure created.

--用于实施剖析的原过程,下面是使用绑定量的过程,注意代码中包含了启用与停止profiler
scott@USBO> create or replace procedure literals
  2  is
  3  v_num number;
  4  begin
  5  dbms_profiler.start_profiler('literals');
  6  for i in 1..100000 loop
  7    v_num := dbms_random.random;             
  8    execute immediate
  9      'insert into t1 values ('||v_num||','||v_num||')';
 10  end loop;
 11  dbms_profiler.stop_profiler;
 12  end;
 13  /

Procedure created.

--Author : Leshami
--Blog  :

在SQL中使用PL/SQL函数存在的问题

 

 

更多精彩内容请看下一页

  • 1
  • 2
  • 下一页

相关内容