JPA / Hibernate медленно вставляет массив - PullRequest
2 голосов
/ 23 апреля 2009

Я делаю массовые вставки с JPA, используя Hibernate в качестве моего провайдера. БД - это Oracle. Он создал генератор последовательности, и каждый раз, когда он выполняет вставку, он запрашивает генератор последовательности для nextval. Если я делаю вставки по 1К, он будет срабатывать по генератору последовательности 1К раз. Любой способ ускорить это, если я хочу придерживаться JPA?

Ответы [ 2 ]

3 голосов
/ 06 августа 2010

Используйте allocationSize в JPA @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 голос
/ 24 апреля 2009

Сделайте снимок с функцией предварительного выделения последовательности:

Объекты последовательности обеспечивают оптимальный опция секвенирования, так как они являются самый эффективный и лучший параллелизм, однако они являются наименее переносимый, как и большинство баз данных не поддерживать их. Объекты последовательности поддержка предварительного выделения последовательности через установка INCREMENT в базе данных последовательность объекта к последовательности размер предварительного выделения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...