我的access插入数据及慢(100分)

  • 主题发起人 主题发起人 dodoabc
  • 开始时间 开始时间
D

dodoabc

Unregistered / Unconfirmed
GUEST, unregistred user!
插入数据
我的access插入数据及慢
30/秒

我也尝试过50条post一次,可是效果不明显

问题是,插的过程中,我的硬盘读写并不明显,有没有什么好方法可以加速呢
 
看看语句。
 
配置一下bde,内存大些
 
用批量插入的方法。ADO和QUERY都可以这样设置的。
 
adoquery1.open //这里开个空表,目的表
adoquery2.open //源表

while not adoquery2.eof
begin
adoquery1.insert
for i := 0 to adoquery2.fieldcount-1
adoquery1.fields.value:= adoquery2.fields.value
next
adoquery2.movenext
adoquery1.post
end

大致是这样,我也尝试了把adoquery2.fieldcount-1直接付给一个变量,50条post一次
但是30000条要1200秒

 
补充的是
我的两个query连接的是access jet4.0
fox odbc
用jet好像不可以连接dbf文件
 
DELPHI如何连VFP数据?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1300287

另外可以用ADOQUERY执行SQL语句直接将ACCESS中的数据导到DBF文件中
select * into awfi in "c:/temp" "dbase 5.0;" from 表1

insert into awfi in "c:/temp" "dbase 5.0;" select * from 表1
 
让我先试一下,请大家稍微耐心一些
 
你查一下以前的问题,有类似的讨论。
ACCESS确实有这个毛病,在数据量很大的时候,性能比较差。
另外,你再看看DisableControls了没有,这同样很影响速度的。
 
to j_shen2000
这个问题我倒是注意了
差不多
因为相对于我每次post的时间,她很小的
 
insert into select * from b (插入)
select * into a from b (建表)
 
我也在问同一个问题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1336629
 
我使用了clientdataset来存贮adoquery2
这样,取数据时的速度可以忽略不计

效率的提高依然不明显,可见主要是由于post占用时间
这样的话,即使使用批量跟新估计也不会有什么效果

我把分大致平均得分了下,谢谢大家




 
去掉表中的所有索引。
 
分了3次了
 
to x-coffee

抱歉你来晚了,不然也有分

你说得我考虑过了

不是这个原因
 

Similar threads

S
回复
0
查看
825
SUNSTONE的Delphi笔记
S
S
回复
0
查看
755
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部