将大量数据插入数据库,避免使用RBAR

时间:2012-10-16 14:20:49

标签: sql vb.net visual-studio ms-access bulkinsert

所以我正在编写必须将数千条记录插入Microsoft Access的软件。目前我正在使用JAR的RBAR(通过痛苦排行)方法。我在询问如何加速这个过程之前在SO上写了一个question,并被告知使用DAO代替JET,因为它会更快,并且避免使用RBAR。

我现在处于准备实施更快解决方案的情况,但我还有一些问题。首先是一些简单的事情,有人知道在vb.net中有一个很好的DAO语法教程,因为我试图在网上寻找一个但是一直在努力。也有人知道要使用的库吗?

其次,避免RBAR方法将数据插入数据库的最佳方法是什么。我假设这是使用记录集,但我不确定如何实现其中一个,或一次插入多行所需的SQL查询。

最后我被告知ms-access不是最好用的,它很慢。有没有人有任何不同的访问替代方案的建议?我需要它是一个免费的商业许可证,我知道这是一个延伸。我只使用数据库作为数据的存储,我不需要访问提供的任何用户接口。我在SO上发现了question,这表明SQLite,MySQL或FireBird。有没有人知道这些解决方案与Access相比的速度以及它们是否仍然可以免费用于商业用途。

所以我基本上是在寻找有关如何尽快将大量数据读/写到数据库的建议。任何帮助或建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

使用MS SQL Express(免费版)批量插入:

http://www.sswug.org/articles/viewarticle.aspx?id=35680

基本上涉及使用批量插入语法并传入文件:

BULK INSERT Test..Clients FROM
'c:\TestData.csv'
WITH (
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n'
)

答案 1 :(得分:1)

而不是访问权限,请查看firebird 它免费且非常可靠。

  

Firebird是一个提供许多ANSI SQL标准的关系数据库   在Linux,Windows和各种Unix平台上运行的功能。   Firebird提供出色的并发性,高性能和强大功能   存储过程和触发器的语言支持。它已被使用   自1981年以来,在各种名称的生产系统中。

     

Firebird项目是C和C的商业独立项目   C ++程序员,技术顾问和支持者开发和   基于Web的多平台关系数据库管理系统的增强   关于Inprise Corp(现称Borland)发布的源代码   Software Corp)于2000年7月25日。