首页 > 解决方案 > 如何检查 JDBC 批处理是否真的有效?

问题描述

我阅读了这篇关于 jdbc 批处理的文章,它建议我打开spring.jpa.properties.hibernate.generate_statistics=true 以检查批处理是否真的有效。

所以当我尝试它并做了一堆插入语句时,日志向我展示了这一点。

27933133 nanoseconds spent executing 2 JDBC batches;

所以它确实奏效了。但我想知道 sql 语句是什么样的,所以我尝试打开 SQL logging logging.level.org.hibernate.SQL=DEBUG。我尝试保存 10 个项目,并且我希望批量大小为 5,我会看到 2 个插入 SQL 语句。但是,当我查看日志时,我看到了 10 条插入 SQL 语句……这是为什么呢?这是文章顺便说一句:https ://www.baeldung.com/jpa-hibernate-batch-insert-update

我误解了这篇文章吗?如果 jdbc 进行了批处理,为什么我看到 10 个 SQL 语句而不是 2 个?

这是我的配置:

spring.jpa.properties.hibernate.jdbc.batch_size=5
spring.jpa.properties.hibernate.order_inserts=true
spring.jpa.properties.hibernate.order_updates=true
spring.jpa.properties.hibernate.batch_versioned_data=true
logging.level.org.hibernate.SQL=DEBUG
spring.jpa.properties.hibernate.generate_statistics=true

标签: hibernate

解决方案


推荐阅读