Grails Версия: 3.3.2
У меня есть 100 тыс. Записей, которые я загружаю из файла CSV и пытаюсь выполнить массовое сохранение.У меня проблема в том, что массовое сохранение работает хуже, чем массовое сохранение.
Во всех онлайн-поисках, которые я делал, в основном использовались те же методы, что и на этом сайте, на который я ссылался http://krixisolutions.com/bulk-insert-grails-gorm/
Я попробовал все 3 решения на странице, вот пример одного из них:
def saveFsRawData(List<FactFsRawData> rawData) {
int startTime = DateTime.newInstance().secondOfDay;
println("Start Save");
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
rawData.eachWithIndex{ FactFsRawData entry, int i ->
session.save(entry);
if(i % 1000 == 0) {
session.flush();
session.clear();
}
}
tx.commit();
session.close();
println("End Save - "+ (DateTime.newInstance().secondOfDay - startTime));
}
Я пробовал различные объемные размеры от 100 до 5К (используя 1К в примере).Все они в среднем около 80 секунд.
Если я полностью удаляю пакетную обработку, я получаю в среднем 65 секунд.
Я не уверен в том, в чем проблема или в чем проблема.Есть идеи?