Oracle 参数绑定性能实践

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

从Oracle的SGA的构成来看,它是推崇使用 参数绑定的。使用参数绑定可以有效的使用Share Pool,对已经缓存的SQL不用再硬解析,能明显的提高性能。

具体实践如下:

SQL>create table test (a number(10));

再创建一个存储过程:

create or replace procedure p_test is

i number(10);

begin

i := 0;

while i <= 100000 loop

execute immediate ' insert into test values (' to_char(i) ')';

i := i + 1;

end loop;

commit;

end p_test;

先测试没有使用参数绑定的:

运行 p_test 后,用时91.111秒

再创建一个使用参数绑定的:

create or replace procedure p_test is

i number(10);

begin

i := 0;

while i <= 100000 loop

execute immediate ' insert into test values (:a)'

using i;

i := i + 1;

end loop;

commit;

end p_test;

运行 p_test 后,用时55.099秒.

从上面的运行时间可以看出,两者性相差 39.525%,可见,用不用参数绑定在性能上相差是比较大的。

Trackback: http://tb.blog.csdn.net/TrackBack.ASPx?PostId=1416644

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航