昨天被质问了java中sql在执行的时候executeBatch 和 单个提交的性能差异,没有回答出来。
以前只是知道有性能差异,但是性能差异具体是啥数量级别还真实没有做过实验。
今天抽时间做了一下这个实验
* oracle数据库9i2
* 采用proxool连接池管理
* 测试的表为很简单的表,总共只有5列
* 测试为insert语句,向测试表中插入了3列值
* 数据量为1w
测试结果如下:
batch time cost:1546 ms
not batch time cost:7832 ms
由此可看出batch提交的性能至少是非batch方式提交的5倍(个人认为随着sql复杂度和填充值的增多,性能差异将更大)