Chinaunix首页 | 论坛 | 博客
  • 博客访问: 652704
  • 博文数量: 70
  • 博客积分: 145
  • 博客等级: 入伍新兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-11 08:15
个人简介

没有简介就是最好的简介

文章分类

全部博文(70)

文章存档

2020年(1)

2018年(2)

2017年(3)

2016年(11)

2015年(12)

2014年(16)

2013年(19)

2012年(6)

我的朋友

分类: Oracle

2014-06-20 15:13:23

为了便于测试首先创建一个表
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使用计时器

阅读(1634) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~