过着简单,真实的生活,喜欢收藏变形金刚(TFE,G1,SL系列),研究金融股市,KOF98,篮球,学习研究Oracle技术,我并不是一个全职的Oracle DBA,但是对于Oracle技术的热爱和研究,是一个不争的事实,愿意结交广大Oracle技术爱好者!MSN:oracle_kof_tf@hotmail.com

一次bind var和non-bind var的测试

上一篇 / 下一篇  2007-12-27 16:28:29 / 个人分类:Oracle数据库技术-Tips

可以看出二者的性能差的不是一点半点儿.....

SQL> alter system flush shared_pool;

系统已更改。

SQL> declare
  2     type rc is ref cursor;
  3     l_rc rc;
  4     l_objectName all_objects.object_name%type;
  5     l_startTime number default dbms_utility.get_time;
  6  begin
  7     for var in 1 .. 1000
  8     loop
  9             open l_rc for 'select /*+ rule */ object_name from dba_objects where object_id = '||var;
 10             fetch l_rc into l_objectName;
 11             close l_rc;
 12     end loop;
 13
 14     dbms_output.put_line(round( (dbms_utility.get_time-l_startTime)/100,2)||' seconds...');
 15  end;
 16  /
12.17 seconds...

PL/SQL 过程已成功完成。

SQL> alter system flush shared_pool;

系统已更改。

SQL> declare
  2     type rc is ref cursor;
  3     l_rc rc;
  4     l_objectName all_objects.object_name%type;
  5     l_startTime number default dbms_utility.get_time;
  6  begin
  7     for var in 1 .. 1000
  8     loop
  9             open l_rc for 'select object_name from dba_objects where object_id = :x' using var;
 10             fetch l_rc into l_objectName;
 11             close l_rc;
 12     end loop;
 13
 14     dbms_output.put_line(round( (dbms_utility.get_time-l_startTime)/100,2)||' seconds...');
 15  end;
 16  /
.12 seconds...

PL/SQL 过程已成功完成。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar