今天翻了一下《oracle 9i&10g的编程艺术》,第一章的第三节提到了使用绑定变量提高性能。
对比下面两段SQL
create or replace procedure proc1
as
begin
for i in 1 .. 10000
loop
execute immediate
'insert into t values ( :x )' using i;
end loop;
end;
create or replace procedure proc2
as
begin
for i in 1 .. 10000
loop
execute immediate
'insert into t values ('||i||')'
end loop;
end;
以上是用Procdure来描述的,前提是有个空表
create table t(x int)
插入一万条数据的对比结果可以在PL/SQL中看到时间对比。
proc1仅仅只有proc2的1/12。
可以看到,如果使用了绑定变量(后面称为绑定变量方法),则只有4 次硬解析;没有使用绑定变量
时(后面称为无绑定变量方法),却有不下 10 000 次的硬解析(每次插入都会带来一次硬解析)。还可以
看到,无绑定变量方法所用的闩数是绑定变量方法的两倍之多------书中原文
posted on 2009-03-27 13:30
湘江夜游神 阅读(159)
评论(0) 编辑 收藏 所属分类:
Oracle学习