有关Access数据库的保存问题,大家来看看(100分)

  • 主题发起人 主题发起人 qabo
  • 开始时间 开始时间
Q

qabo

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序当点击按钮后需要保存几百万条记录,我是用Ado连接Access数据库,用SQL语句的Insert来插入到数据库中,但是我发现这样保存非常非常慢,大家有什么好方法吗?怎样进行优化?
 
添加几百万条记录速度稍微优化一下效果会很明显。这方面我不能给你什么好点子,看看这篇文章吧http://www.microsoft.com/china/msdn/library/archives/technic/develop/pius/0228f.asp
 
你使用insert 是单条进行插入吗?
比如
adocommand.CommandText:= 'insert into tablename(fields....) values (values.....)';
adocommand.execute;
如果是这样肯定慢.我记得以前做过一个软件,也是你这样的数量级的数据载入.不过是到ms sql.开始也是使用这样的方法,特别慢.后来我做了一个修改,
把多条插入语句生成好了再执行,通常是20到30条,这样速度大概快了10倍以上.
var tsql:widestring;
for i:=1 to 20 do //生成20条记录插入语句
tsql:=tsql+ 'insert into tablename(fields....) values (values.....)';
adocommand.CommandText:=tsql;
adocommand.execute;
如果这样的语句access支持,肯定可以大幅度提高速度.在ms sql肯定可以支持.
 
百万的没试过,可以先把你的数据存储在几个txt中,然后直接吧txt导入倒access中,
文本导入access的方法,你在论坛上搜索有很多的,肯定比你插入的速度要快.
 
多人接受答案了。
 

Similar threads

后退
顶部