您的位置:首页 > 数据库 > Oracle

Oracle中绑定变量的简单性能测试

2009-01-04 14:03 525 查看
都是向一个表里面插入1000条数据。

create table t(x int);

带参数的存储过程

create or replace procedure proc1

as

begin

for i in 1 .. 1000

loop

execute immediate

'insert into t values(:x)' using i;

end loop;

end;

/

不带参数的存储过程

create or replace procedure proc2

as

begin

for i in 1 .. 1000

loop

execute immediate

'insert into t values('||i||')';

end loop;

end;

运行看看结果:


SQL> exec proc2;

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.40

SQL> exec proc1;

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.03

SQL> exec proc2;

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.23

SQL> exec proc1;

PL/SQL 过程已成功完成。

已用时间: 00: 00: 00.01

SQL>

结论
使用带参数的SQL,性能比不带参数的高10-20倍。也许没有这么悬殊,但差距绝对应该是很明显的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: