Access Database TransferText性能改进

时间:2014-05-30 18:40:22

标签: vb.net performance vba access-vba

考虑提高我们的.net工具的性能,该工具将数据导入访问数据库。在循环中逐行插入应该比.TransferText方法慢,所以我正在寻找其他方法来执行相同的导入,但性能更好。

目前我们执行以下操作:

  1. .NET应用程序检测到新文本文件到达
  2. 将其放入数据表
  3. 验证数据
  4. 创建Access db
  5. 创建vba模块并插入vba代码
  6. 在访问
  7. 中调用DoCmd.TransferText方法
  8. 其他流程等杂项
  9. 我应该研究一下表现更好的技术吗?

    由于

1 个答案:

答案 0 :(得分:0)

.TransferText方法确实较慢但是我还能够做一些代码优化,比如在数据库被使用时保持数据库打开,而不是每次迭代都打开和关闭数据库。另外,我使用DAO连接到db并执行一些sql语句批量插入我直接连接到的文本文件记录。

db.Execute("INSERT INTO " & sMdbTableName & " SELECT * FROM [Text;HDR=Yes;FMT=Delimited;Database=" & localPath & "]." & sTextFile & ";")

当我将每项改进全部放在一起时,这是一个更快的分配。 我添加了定时器代码并分别测试了每种技术。结果是使用DAO与bult insert语句直接连接到文本文件的速度提高了大约5倍。

感谢您的回复和帮助