jdbc executeBatch与大查询执行

时间:2015-10-26 08:44:17

标签: java oracle performance jdbc

我需要非常快速地更新/插入大量条目。我看到2个选项

  • 创建许多查询并通过executeBatch
  • 发送
  • 创建一个大查询(包含db特定语法中的所有更新/插入)并执行它。由于更新次数已修复(“批量大小”),我也可以准备此声明

目标数据库是oracle。批处理中的插入/更新数量是1000到10000之间的固定数字(这个数字对性能有一定影响吗?)

那又怎么样了?

1 个答案:

答案 0 :(得分:1)

您的选择基本相同。实际上它们可能是相同的,除非你的第二种选择以不好的方式实施。

使用内置PreparedStatement批处理更安全,因为驱动程序将比您更了解要做什么。程序员错误的可能性较小,如果您更改数据库提供程序,则无需仔细检查您的解决方案是否仍然有效。

请务必查看如何正确执行批处理。例如,批量大小通常为100,而不是您要插入的完整行数(因此您将有10 executeBatch()个插入1000行)。