Я создал одноуровневую сущность (без ассоциаций) с 15 полями (в основном строками и длинными значениями с создано и изменено по датам). Я использую контроллер, который принимает счетчик (в данном случае 20 КБ) и запускает простой метод для создания экземпляров записей размером 20 000 с помощью new Entity() и заполнения их случайными данными. Наконец, мы использовали метод saveAll() этого репозитория объектов, чтобы сохранить все объекты в базе данных. Теперь подходы, которые мы опробовали:
- Стандартный способ, никакие изменения в приведенной выше логике не занимают около 40 секунд.
- Добавлено новое поле с использованием интерфейса Persistable, что позволило сократить выборочные запросы и несколько секунд процесса.
- Добавлены свойства пакетной вставки JPA с размером пакета 250, что сокращено до 33% времени. .
- Увеличить размер пакета до 5 000 записей в пакете, что сократило его до 8–9 секунд.
Кроме этого, у меня закончились возможности повышения производительности, и я не уверен, практически возможно ли это сделать . (Не учитывая неконтролируемые на данный момент факторы, такие как пропускная способность сети и все такое)
Есть ли какой-либо другой способ или конфигурация, которую нам не хватает, которая могла бы еще больше улучшить ее?
Подробнее здесь: https://stackoverflow.com/questions/791 ... ring-query
Мобильная версия