2009-04-23 129 views
2

我正在使用Hibernate作爲我的提供程序使用JPA批量插入。 DB是Oracle。它創建了一個序列生成器,每次它執行插入操作時,它都會查詢nextval的序列生成器。如果我正在做1K插入,它將觸發序列發生器1K次。如果我想堅持使用JPA,有什麼辦法可以加快速度?JPA /休眠批量插入緩慢

回答

1

有序列預分配功能一拍:

序列對象提供最佳 排序選項,因爲它們是 最有效和有最好的 併發性,但是他們是 至少便攜式作爲最數據庫做 不支持它們。 序列對象 支撐序列預分配通過 數據庫 序列對象上的增量設定該序列 預分配大小。

3

在JPA @SequenceGenerator使用allocationSize

參見該例子中,在那裏它被設置爲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;