Обработка большого количества данных с использованием спящего режима

1

Я использую hibernate для обработки данных в своем приложении. Приложение работает нормально, но я сталкиваюсь со временем, связанным с производительностью в приложении. Сценарий: у меня есть одна таблица, которая расположена удаленно и содержит около 100000 строк. Мне нужно вставить эти данные в таблицу локальной базы данных (с другой структурой), используя некоторое сопоставление (чтобы я мог знать, какой удаленный столбец таблицы эквивалентен столбцу локальной таблицы). для обработки этих данных требуется 9 часов. Я выполняю собственные SQL-запросы. это вызывает проблемы с производительностью? Любое предложение будет оценено по достоинству.

  • 0
    Есть ли у вас индексы на вашей целевой таблице?
Теги:
hibernate
jpa

1 ответ

2
Лучший ответ
  1. Задайте следующие свойства Hibernate для включения пакетной обработки:

  2. Вы должны очистить сеанс, как только пакет обрабатывается для очистки памяти. Это позволяет использовать меньший размер кучи, что уменьшает вероятность длительных прогонов GC:

    session.flush(); session.clear();

  3. Используйте новые генераторы идентификаторов, и в случае использования последовательностей БД вы можете выбрать оптимизатор с пулом. Использование алгоритма hi/lo уменьшит последовательность вызовов и повысит производительность.

  4. Не используйте генератор идентификаторов, поскольку это приведет к отключению дозирования

Ещё вопросы

Сообщество Overcoder
Наверх
Меню