|
myth8860 发表于 2012-9-28 17:32 ![]()
你这个表没主键,加上主键试试
SQL> create table a(a number(38,2));
Use time:16 ms.
ok.
SQL>
SQL> alter table a add primary key(a);
Use time:62 ms.
ok.
SQL> create or replace procedure ptestall (n integer,bsize integer ) IS
2 num integer:= 0;
3 type ta is table of a.a%type;
4 taa ta;
5 begin
6 taa.extend(bsize);
7 for k in 1..n/bsize loop
8 for i in 1..bsize loop
9 num:=num+1;
10 taa(i) := num;
11 end loop;
12 forall j in 1..bsize
13 insert into a(a) values(taa(j));
14 end loop;
15 commit;
16 end;
Use time:62 ms.
ok.
SQL>
SQL> create or replace procedure ptest (n integer ) IS
2 i integer := 0;
3 num integer:= 0;
4 begin
5 for i in 1..n loop
6 num := num+1;
7 insert into a(a) values(num);
8 end loop;
9 commit;
10 end;
Use time:0 ms.
ok.
SQL>
SQL> exec ptest(500000)
Use time:5928 ms.
ok.
SQL> truncate table a;
Use time:265 ms.
ok.
SQL> exec ptestall(500000,100)
Use time:4836 ms.
ok.
SQL> truncate table a;
Use time:125 ms.
ok.
SQL> exec ptestall(500000,500)
Use time:5133 ms.
ok.
SQL> |
|