天天看點

Oracle批量造資料

今天項目中要做性能測試,需要在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,如需轉載請自行聯系原作者