请教:关于大量数据插入性能的问题!
「已注销」 2007-04-25 10:27:32 我的程序每天要读取200万至2000万条记录入库,入库的时间是由程序收到数据后决定的,程序收到的数据存在一个buf里,我需要把它解释出来入库,一般来说解释出来一个buf里估计含200条记录,我现在的做法是:
我在数据库中建立一个存储过程:ProIns,每次插入一条记录,同时记录是有主键的,如果存在相同的纪录,则不插入,过程如下:
create or replace procedure ProIns (T_ID in varchar2,
P_D in varchar2)
as
RecordNum Number;
begin
select count(*) into RecordNum from table1 where TID = T_ID;
if RecordNum=0 then
insert into table1 (TID,PD) values (T_ID,P_D);
commit;
end if;
exception when others then
null;
end ProIns;
/
然后我在程序中循环调用该存储过程,每次插入一条记录,这样就很慢,怎么样
提高入库性能呢?
大概有以下几个特点:
1、无法保证入库的数据的唯一性;
2、数据入库时间不定;
3、一次接收到的buf中包含的纪录数不定;
4、表有关键字:t_id;
5、其他人可以在任意时候查询该表;
象这种情况,怎样提高入库性能?谢谢