executeBatch在Prepared Statement上的效果如何?

Jay*_*Jay 6 java database performance jdbc java-ee

根据这个问题,问一切:executeBatch方法有效吗?是否有一个性能基准,即...如果要插入1000条记录,使用executeBatch而不是executeUpdate可以节省x个数据库周期数量?

或者这只是一个惯例?

编辑:以下是我正在使用的内容:Z/OS上托管的DB2 V 8.1,这是一个Web应用程序,它将在最糟糕的情况下一次性插入80,000条记录.

Ale*_*lex 8

不确定您使用的数据库.当我使用db2对此进行测试时,这就是我所看到的:

要写入数据库:

1插入需要2500微秒.

10次​​插入需要6000微秒.(每次写入600微秒)

10000次插入需要大约100万微秒.(每次写入100微秒)

性能最大化.所有这些意味着发送消息会产生巨大的开销,并且使用批处理方法可以最大限度地减少这种情况.当然,如果应用程序崩溃,以大批量发送插入/更新可能会丢失它们.

另请注意:确切的数字会因您的数据库和设置而异.所以你必须找到自己的"甜蜜点".但这给了你一个想法.