今天項目中要做性能測試,需要在oracle中一個表造5000萬的資料,總結如下:
1. 最好10000次送出一次
2. 注意表空間的大小
3. 面對主鍵唯一的情況,最好用一個單獨的計數器,直接用i*j會有重複,插入不成功
create or replace procedure sp_proc1 as
v_num number:=1;
begin
loop
insert into t_user values(v_num, '李四'||v_num);
exit when v_num=1000000;
if mod(v_num, 10000)=0 then
commit;
end if;
v_num:=v_num+1;
end loop;
end;
/
declare
i number := 1;
j number := 1;
count number := 1002275000; //基數, 一般都找現存表中最大值
for i in 1..10000
loop
for j in 1..5000
loop
count := count +1;
insert into product(ID, GMT_CREATE, MT_MODIFIED, OMPANY_ID, ) values(count, to_timestamp(sysdate,'DD-MON-RR HH.MI.SS.FF AM'), o_timestamp(sysdate,'DD-MON-RR HH.MI.SS.FF AM'),i+10000 );
end loop;
commit;
end loop;
本文轉自 tianya23 51CTO部落格,原文連結:http://blog.51cto.com/tianya23/240936,如需轉載請自行聯系原作者