加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 慢速MSAccess磁盘写入

发布时间:2020-12-17 00:04:01 所属栏目:大数据 来源:网络整理
导读:我正在尝试编写一个VB.Net程序,每天为MSAccess表保存1-2百万个5字段记录(加上索引ID).保存过程目前需要13-20个小时,这显然是不对的. 它是一个平台,索引最小,目前只有156MB.除了一个双字段外,字段是小字符串,日期或长整数.磁盘本身是一个15,000 SATA,仅用于此
我正在尝试编写一个VB.Net程序,每天为MSAccess表保存1-2百万个5字段记录(加上索引ID).保存过程目前需要13-20个小时,这显然是不对的.

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

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

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读