2015-04-20 3 views
0

Я использую OpenJpa на WAS 8.0 и Oracle 11 DB ... (afaik OpenJPA 2.1) У меня есть объемная вставка с сущностью. (300.000)OpenJPA: последовательность Bottleneck в массовой вставке

Тесты: Я сохраняю сущности с генерированием идентификатора из последовательности и с собственным сгенерированным идентификатором.

Результат:

Вставка 200.000 Entitys с упорствовать:
С Sequence 2 минуты и 30 секунд.
С собственным идентификатором 35 секунд.

Вставка 500.000 Entitys с упорствовать:
С Sequence 5 минут
С идентификатору 100 секунд.

Проблема в том, что последовательность запускает каждую вставку. Но я должен использовать последовательность.

я прочитал кое-что о allowcationsize кэшей значения в JVM, я думаю, что это правильный путь, но это OpenJPA 2,2 (http://openjpa.apache.org/builds/2.3.0/apache-openjpa/docs/jpa_2.2.html)

Есть еще один хороший способ сделать это?

Спасибо за ваше время.

ответ

1

Попробуйте до размера sequence generator allocation size.

+0

да, это работает отлично с OpenJPA 2.3, но я должен использовать 2.1. Когда я сделал это в 2.1, jpa выполнила запрос последовательности для каждой вставки. (В версии 2.3 нет) – pL4Gu33

+0

Он также должен работать нормально 2.1.x. Если нет, он должен быть исправлен, а не обратно. Вы можете найти https://issues.apache.org/jira/browse/OPENJPA по соответствующим вопросам. Удачи! – Rick

+0

спасибо. Я там ищу. :) – pL4Gu33

 Смежные вопросы

  • Нет связанных вопросов^_^