Oracle使用JDBC驱动程序插入优化

时间:2017-05-17 06:29:30

标签: java oracle jdbc jdbctemplate

我在一个空的oracle表中插入了100万条记录。为了提高插入性能,我尝试了以下优化:

  • 在插入查询中提供/ * + APPEND * /提示
  • 禁用索引 在插入之前,然后在插入完成后重新启用它
  • 在桌面上启用nologging。

但是,我无法看到插入性能的任何改进。我无法弄清楚原因。

请注意,我使用org.springframework.jdbc.core.JdbcTemplate#batchUpdate来插入记录,我在20000批次中插入记录。

1 个答案:

答案 0 :(得分:1)

Earliar Oracle发布了有关JDBC性能调优的文档:Oracle JDBC Memory Management

以下是一些提示

  1. 根据您的oracle配置优化批量大小。

  2. 缓存预备文件并对所有批次使用相同的语句(需要清理)或使用语句池(Oracle JDBC驱动程序支持它。请参阅上述文档。)

  3. Oracle定义的性能扩展很少:Performance Extensions。而不是addBatch使用sendBatch来提高批处理性能。请参阅上述文档中的示例23-1。 1

  4. [1] 在12中支持使用setExecuteBatchsendBatch进行Oracle样式批处理。