首页 > 代码库 > 关于自己学到的批量绑定

关于自己学到的批量绑定

使用VALUES将数据插入到数据库表中,每次只能插入一条数据。

下面使用循环插入500000条数据到表MEMO中

declare  type

id_table_type is table of number

index by binary_integer;

name_table_type is table of varchar2(20)

index by binary_integer;

id_table id_table_type ;

name_table name_table_type ;

begin

     for i in 1..500000 loop

          id_table(i):=i;

         name_table(i):=‘name:‘||i;

end loop;

for i in 1..id_table.count loop

insert into memo(id,name) values(id_table(i),name_table(i));

end loop;

end;

自己测试了一下,改方法大约用了21秒。

如果使用批量绑定:

declare  type

id_table_type is table of number

index by binary_integer;

name_table_type is table of varchar2(20)

index by binary_integer;

id_table id_table_type ;

name_table name_table_type ;

begin

     for i in 1..500000 loop

          id_table(i):=i;

         name_table(i):=‘name:‘||i;

end loop;

forall i in 1..id_table.count 

insert into memo(id,name) values(id_table(i),name_table(i));

end;

时间大约是2.7秒。