Java Hibernate批处理大小不适用于Oracle
我想配置hibernateJava Hibernate批处理大小不适用于Oracle,java,oracle,performance,hibernate,Java,Oracle,Performance,Hibernate,我想配置hibernatebatch\u size。 我在hibernate配置中对其进行了如下配置: configuration.setProperty("hibernate.jdbc.batch_versioned_data", "true"); configuration.setProperty("hibernate.jdbc.batch_size", "100"); configuration.setProperty("hibernate.jdbc
batch\u size
。
我在hibernate配置中对其进行了如下配置:
configuration.setProperty("hibernate.jdbc.batch_versioned_data",
"true");
configuration.setProperty("hibernate.jdbc.batch_size", "100");
configuration.setProperty("hibernate.jdbc.fetch_size", "400");
configuration.setProperty("hibernate.order_inserts", "true");
configuration.setProperty("hibernate.update_inserts", "true");
我在数据库中创建了一个名为test的测试表,其中只有一个整数字段。
相关实体为:
@Entity
@Table(name = "Test")
public class TestEntity implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "Field")
private int field;
}
我编写了一个非常简单的测试方法来创建一些数据:
tx = session.beginTransaction();
for (int i = 0; i < 1000; i++) {
TestEntity test = new TestEntity(i);
session.save(test);
}
tx.commit();
我真的不明白为什么它不起作用
有什么想法吗?看,可能您实际上在使用批处理,但SQL语句只是单独打印出来的。看一看并回答。这个问题与
批处理文件
标记无关,因此我建议您删除它。您可以查看此标记的描述,将鼠标悬停在其上。人们不应该在任何有“批次”的问题中插入这样的标签:(
@DraganBozanovic你说得对。我刚刚跟踪了插入值所用的时间,有没有设置batch_size参数,它实际上在工作,并且提高了性能。总之,hibernate没有打印用于插入数据的真正SQL,这很奇怪
Hibernate:
insert
into
Test
(Field)
values
(?)
Hibernate:
insert
into
Test
(Field)
values
(?)
Hibernate:
insert
into
Test
(Field)
values
(?)
Hibernate:
insert
into
Test
(Field)
values
(?)
Hibernate:
insert
into
Test
(Field)
values
(?)
Hibernate:
insert
into
Test
(Field)
values
(?)
.......
.......