创建表m与两个存储过程proc1和proc2,其中proc1使用了绑定变量:
create table m (x number);
create or replace procedure proc1
as
begin
for i in 1..10000
loop
execute immediate
'INSERT INTO m VALUES(:x)' USING i;
end loop;
end;
和
create or replace procedure proc2
as
begin
for i in 1..10000
loop
execute immediate
'INSERT INTO m VALUES('||i||')';
end loop;
end;
打开计时器
SQL> set timing on;
执行proc1
SQL> exec proc1;
所花时间为:Elapsed: 00:00:03.19
查看表m有多少条记录:
SQL> SELECT count(*) FROM m;
把表中的数据删除再执行proc2,
SQL> truncate table m;
SQL> exec proc2;
所花时间:Elapsed: 00:00:11.95,此时间为proc1的几倍可以看出性能的差距
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7865774/viewspace-612393/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7865774/viewspace-612393/