delphi – 如何在MS Access表中插入800000条记录?
我需要在MS Access表中插入800000条记录.我正在使用Delphi 2007和TAdoXxxx组件.该表包含一些整数字段,一个浮点字段和一个只有一个字符的文本字段.其中一个整数字段(不是autoinc)上有一个主键,另一个整数和float字段上有两个索引.
使用AdoTable.AppendRecord(…)插入数据需要> 10分钟是不可接受的,因为每次用户开始在程序中使用新数据库时都会这样做.我无法预填表,因为数据来自另一个数据库(无法通过ADO访问). 通过将记录写入制表符分隔的文本文件并使用tAdoCommand对象执行,我设法将时间缩短到大约1分钟 insert into table (...) select * from [filename.txt] in "c:somedir" "Text;HDR=Yes" 但我不喜欢这个的开销. 我想,必须有更好的方法. 编辑: 一些其他信息: >选择MS Access是因为它不需要在目标计算机上进行任何其他安装,并且整个数据库包含在一个可以轻松复制的文件中. 编辑: 从我到目前为止得到的所有答案来看,似乎我已经有了将这么多数据插入Access表的最快方法.感谢大家,感谢您的帮助. 解决方法
您的基于文本的解决方案似乎是最快的,但如果您可以获得接近最终版本的预分配MS Access,则可以更快地获得它.您可以通过填充典型的用户数据库,关闭应用程序(以便刷新缓冲区)并手动删除该大表的所有记录来完成此操作 – 但不能缩小/压缩它.
因此,使用该文件来启动实际填充 – Access不会请求任何(或极少)额外的磁盘空间.不要记得,如果MS Access有办法自动化这个,但它可以帮助很多…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |