1 我用 form1.ADOQuery1 查询出14万条数据
然后
用 while not form1.ADOQuery1.Eof do
begin
if length(form1.ADOQuery1['1'])=5 then
riqi:=t+' 0'+copy(form1.ADOQuery1['1'],0,1)+':'+copy(form1.ADOQuery1['1'],2,2)+':'+copy(form1.ADOQuery1['1'],4,2)
else
riqi:=t+' '+copy(form1.ADOQuery1['1'],0,2)+':'+copy(form1.ADOQuery1['1'],2,2)+':'+copy(form1.ADOQuery1['1'],5,2); j:=form1.ADOQuery1['2'];
f:=form1.ADOQuery1['3'];
s:= form1.ADOQuery1['4'];
form1.ADOQuery1.Next;
end;
遍历这14万条数据,然后用sql INSERT 语句 通过 ADOQuery2 插入另外的数据表中
用时15分钟左右,
前4,5万条数据只需要2分钟左右,越来越慢,但是数据基本都是一样
请问如何可以加快存储速度。------------
然后
用 while not form1.ADOQuery1.Eof do
begin
if length(form1.ADOQuery1['1'])=5 then
riqi:=t+' 0'+copy(form1.ADOQuery1['1'],0,1)+':'+copy(form1.ADOQuery1['1'],2,2)+':'+copy(form1.ADOQuery1['1'],4,2)
else
riqi:=t+' '+copy(form1.ADOQuery1['1'],0,2)+':'+copy(form1.ADOQuery1['1'],2,2)+':'+copy(form1.ADOQuery1['1'],5,2); j:=form1.ADOQuery1['2'];
f:=form1.ADOQuery1['3'];
s:= form1.ADOQuery1['4'];
form1.ADOQuery1.Next;
end;
遍历这14万条数据,然后用sql INSERT 语句 通过 ADOQuery2 插入另外的数据表中
用时15分钟左右,
前4,5万条数据只需要2分钟左右,越来越慢,但是数据基本都是一样
请问如何可以加快存储速度。------------
ADOQuery1一次尽量提取少一点数据,万把条左右的。 一次提取到客户端,你也不怕客户端内存撑死去。
你的电脑还不干别的事啦
SQL中不也有判断语句吗?建议你用存储过程来做。
是这样,根据不用读到内存中,直接在后台用SQL语句完成是最快的。
insert B 表 select case when len([1])=5 then t+' 0'+substring(['1'],0,1)+':'+substring(['1'],2,2)+':'+substring(['1'],4,2) else t+' '+substring(['1'],0,1)+':'+substring(['1'],2,2)+':'+substring(['1'],4,2) end,[2],[3],[4] from a 求结帖,求粉丝!