vb.net – 慢速MSAccess磁盘写入

前端之家收集整理的这篇文章主要介绍了vb.net – 慢速MSAccess磁盘写入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个VB.Net程序,每天为MSAccess表保存1-2百万个5字段记录(加上索引ID).保存过程目前需要13-20个小时,这显然是不对的.

它是一个平台,索引最小,目前只有156MB.除了一个双字段外,字段是小字符串,日期或长整数.磁盘本身是一个15,000 SATA,仅用于此文件.在保存例程期间,计算机和程序没有执行任何其他操作.保存例程是一个简单的FOR-NEXT循环,它为数据集中的每条记录发出一个简短的INSERT语句.

任何人都有关于我需要改变的想法,以使其更好地工作?

可以在任何DBMS上工作以大幅加速插入的技巧是在批量插入数据之前暂时禁用索引,外键和约束 – 然后在数据库中的数据之后再次启用它们.

特别是索引可以是顺序插入的性能杀手,它至少要先填充一个表(有时为2!),然后在已经填充的数据上创建索引,而不是在索引到位时插入.在这种情况下,您可能需要删除索引,然后重新创建它.

然后,正如大多数其他海报已经说过的那样,如果你可以一串一行地插入一行,真的是浪费时间.如果打开表没有锁定或只有乐观锁定,您将获得较小的速度提升.

然后你可以通过使用DAO记录集而不是ADO来获得另一个微小的增量 – 我在VB6开发的那些日子里注意到这一点,可能这不再是ADO.NET的情况了.

原文链接:https://www.f2er.com/vb/255822.html

猜你在找的VB相关文章