小编Tri*_*Cyr的帖子

从Java批量复制到SQL Server的最有效方法是什么?

我有数据从磁盘流式传输并由Java应用程序在内存中处理,最终需要复制到SQL Server中.数据可能相当大(因此是流式传输),并且可能需要插入多达100,000个行.最快的解决方案似乎是使用SQL Server的批量复制功能.但是,我还没有找到任何方法让Java程序轻松或快速地完成此任务.

以下是我已经调查过的一些方法:

  • 在.NET中使用SqlBulkCopy类.这非常有效,因为您可以直接从数据源直接流式传输数据到SQL Server.这种方法的问题是你需要运行.NET.也许这可以使用Java to .NET桥来使用.虽然,我想知道运行时间之间编组数据的成本.

  • 使用BULK INSERT TSQL语句.这个问题是您需要在磁盘上创建格式正确的文件.我已经看到使用这个比JDBC的批量插入有一些小的性能提升.此外,这仅在本地有用.

  • 将文件写入磁盘并使用bcp命令行实用程序.仍然比JDBC批量插入快一点但不是那么多.我也失去了使用此方法进行交易的能力.

  • 使用C API.再次,非常有效,但你需要使用C.有一种方法可以通过JNI使用它.如果有一些免费的Java库可以做到这一点,我想知道它.

我正在寻找最快的解决方案.记忆不是问题.

谢谢!

java sql-server bulkinsert

8
推荐指数
1
解决办法
3802
查看次数

标签 统计

bulkinsert ×1

java ×1

sql-server ×1