我在一个空的oracle表中插入了100万条记录。为了提高插入性能,我尝试了以下优化:
但是,我无法看到插入性能的任何改进。我无法弄清楚原因。
请注意,我使用org.springframework.jdbc.core.JdbcTemplate#batchUpdate
来插入记录,我在20000批次中插入记录。
答案 0 :(得分:1)
Earliar Oracle发布了有关JDBC性能调优的文档:Oracle JDBC Memory Management
以下是一些提示
根据您的oracle配置优化批量大小。
缓存预备文件并对所有批次使用相同的语句(需要清理)或使用语句池(Oracle JDBC驱动程序支持它。请参阅上述文档。)
Oracle定义的性能扩展很少:Performance Extensions。而不是addBatch
使用sendBatch
来提高批处理性能。请参阅上述文档中的示例23-1。 1
[1] 在12中支持使用setExecuteBatch
和sendBatch
进行Oracle样式批处理。