Grails 3: проблема с массовой загрузкой - PullRequest
0 голосов
/ 07 июня 2018

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 секунд.

Я не уверен в том, в чем проблема или в чем проблема.Есть идеи?

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