【发布时间】:2011-07-31 20:28:30
【问题描述】:
我正在尝试用大约 50,000 行 10 列填充 Java 中的结果集
然后使用PreparedStatement的batchExecute方法将它们插入到另一个表中。
为了加快处理速度,我做了一些研究,发现在将数据读入 resultSet 时,fetchSize 起着重要作用。
非常低的 fetchSize 会导致过多的服务器访问,而非常高的 fetchSize 会阻塞网络资源,因此我进行了一些试验并设置了适合我的基础架构的最佳大小。
我正在阅读这个结果集并创建插入语句以插入到不同数据库的另一个表中。
类似这样的东西(只是一个示例,不是真正的代码):
for (i=0 ; i<=50000 ; i++) {
statement.setString(1, "a@a.com");
statement.setLong(2, 1);
statement.addBatch();
}
statement.executeBatch();
- executeBatch 方法会尝试一次发送所有数据吗?
- 有没有办法定义批量大小?
- 有没有更好的方法来加快批量插入的过程?
在批量更新时(50,000 行 10 列),使用可更新的 ResultSet 还是使用 PreparedStaement 批量执行更好?
【问题讨论】:
标签: java resultset bulkinsert prepared-statement