为了便于测试首先创建一个表
create table m (x int)
创建存储过程1,使用绑定变量
SQL> create or replace procedure proc1
2 as
3 begin
4 for i in 1..10000
5 loop
6 execute immediate
7 'insert into m values(:x)' using i;
8 end loop;
9 end;
10 /
Procedure created.
Elapsed: 00:00:00.36
创建存储过程2,不使用绑定变量
SQL> create or replace procedure proc2
2 as
3 begin
4 for i in 1..10000
5 loop
6 execute immediate
7 'insert into m values('||i||')';
8 end loop;
9 end;
10 /
Procedure created.
Elapsed: 00:00:00.13
首先执行不使用绑定变量的存储过程2
SQL> exec proc2;
PL/SQL procedure successfully completed.
Elapsed: 00:00:08.61
可以看出使用的时间是00:00:08.61
SQL> select count(*) from m;
COUNT(*)
----------
10000
Elapsed: 00:00:00.00
SQL> truncate table m;
Table truncated.
将创建的表清空
Elapsed: 00:00:00.27
SQL> select count(*) from m;
COUNT(*)
----------
0
Elapsed: 00:00:00.00
使用绑定变量的存储过程1
SQL> exec proc1;
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.91
可以看出使用的时间是00:00:00.91
从上面的对比中可以发现使用绑定变量向一个表中插入1000条语句使用的时间是00:00:00.91,不使用绑定变量使用的时间是00:00:08.61时间相差很多。
可以使用set timing on使用计时器
阅读(1649) | 评论(0) | 转发(0) |