同样插入10万行记录(测试语句如下),未使用绑定变量需要72.6秒,使用绑定变量后只需要8.6秒,
语句1:
begin
for i in 1 .. 100000
loop
execute immediate
'insert into t values('||i||')';
end loop;
commit;
end;
/
语句2:
begin
for i in 1 .. 100000
loop
execute immediate
'insert into t values (:x)' using i;
end loop;
commit;
end;
/
SQL> set time on
16:32:17 SQL> set timing on
16:32:22 SQL> create table t(id int);
Table created.
Elapsed: 00:00:00.04
16:32:45 SQL> begin
for i in 1 .. 100000
loop
execute immediate
'insert into t values('||i||')';
end loop;
commit;
end;
/
PL/SQL procedure successfully completed.
Elapsed: 00:01:12.62
16:34:21 SQL>
使用绑定变量后如下:
16:34:26 SQL> begin
for i in 1 .. 100000
loop
execute immediate
'insert into t values (:x)' using i;
end loop;
commit;
end;
/
PL/SQL procedure successfully completed.
Elapsed: 00:00:08.60