JPA / Hibernate批量插入速度慢

时间:2009-04-23 04:50:51

标签: hibernate jpa

我正在使用Hibernate作为我的提供者使用JPA进行批量插入。数据库是Oracle。它创建了一个序列生成器,每次执行插入时,它都会查询序列生成器的nextval。如果我正在进行1K插入,它将在序列发生器上击中1K次。如果我想坚持使用JPA,有什么方法可以加快速度呢?

2 个答案:

答案 0 :(得分:3)

使用JPA allocationSize中的@SequenceGenerator

请参阅此示例,其中设置为150:

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_ENTITY_SEQ")
@SequenceGenerator(name = "MY_ENTITY_SEQ", sequenceName = "MY_ENTITY_SEQ", allocationSize = 150)
@Column(name = "MY_ENTITY", nullable = false)
private Long id;

答案 1 :(得分:1)

使用序列预分配功能进行拍摄:

  

序列对象提供最佳   排序选项,因为它们是   效率最高,效果最好   并发,但他们是   大多数数据库都是最不便携的   不支持他们。 序列对象   通过支持序列预分配   在数据库上设置INCREMENT   序列对象到序列   预分配大小。