2009-04-23 7 views
2

que je fais avec inserts en vrac JPA en utilisant Hibernate comme mon fournisseur. La base de données est Oracle. Il a créé un générateur de séquence, et chaque fois qu'il fait un insert il interroge le générateur de séquence pour nextval. Si je fais des insertions 1K, il frappera le générateur de séquence 1K fois. N'importe quelle façon d'accélérer cela, si je veux rester avec JPA?inserts en vrac JPA/Hibernate lente

Répondre

1

ont une chance avec une séquence préallocation fonction:

Les objets de séquence offrent l'option optimale de séquençage , car ils sont les les plus efficaces et ont le meilleur accès concurrentiel , ils sont cependant le moins portable plus bases de données ne prennent pas en charge les . Objets de séquence préallocation de séquence de prise en charge à définition de l'INCREMENT sur la base de données objet de la séquence à la séquence taille de pré-allocation.

3

Utilisez le allocationSize dans l'Assemblée parlementaire paritaire @SequenceGenerator.

Voir cet exemple, où il est fixé à 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; 
Questions connexes