Чтение Liquibase из журнала изменений базы данных занимает много времени

Есть ли способы ускорить задачу maven для операции отката и обновления liquibase?

У меня есть около 280 наборов изменений в БД, и когда я делаю обновление, требуется много времени, чтобы просто прочитать из журнала изменений базы данных.

Я использую liquibase 2 и множество файлов в формате sql для набора изменений. Спасибо

Изменить: добавление более конкретных временных рамок при выполнении

INFO 11/16/12 10:46 AM:liquibase: Reading from databasechangelog
INFO 11/16/12 10:54 AM:liquibase: Successfully released change log lock

В этом примере он работает локально на MBP (ядро i7 с 8 гигабайтами оперативной памяти).


person Sergio    schedule 13.06.2012    source источник
comment
Определить долгое время.... Это вопрос производительности, о котором лучше всего сообщать непосредственно проекту liquibase. См.: liquibase.jira.com/browse/CORE.   -  person Mark O'Connor    schedule 13.06.2012


Ответы (3)


Я заметил то же самое. При использовании его через Maven я вижу следующее:

[INFO] Executing on Database: jdbc:postgresql://localhost/mydb
INFO 11/5/12 1:01 PM:liquibase: Successfully acquired change log lock
INFO 11/5/12 1:01 PM:liquibase: Reading from databasechangelog
INFO 11/5/12 1:01 PM:liquibase: Reading from databasechangelog
INFO 11/5/12 1:02 PM:liquibase: ChangeSet mydb/db.changelog-006.sql::55::ebridges ran successfully in 41ms
INFO 11/5/12 1:02 PM:liquibase: Successfully released change log lock
INFO 11/5/12 1:02 PM:liquibase: Successfully released change log lock

Обратите внимание, что в целом выполнение одного набора изменений заняло две минуты, что само по себе заняло всего 41 мс. Это медленно.

person Edward Q. Bridges    schedule 05.11.2012

На моей машине я воспроизвел проблему, и основной поток застрял на нативном методе:

java.lang.Class.getGenericSignature()

Это указывает на то, что проблема связана с реализацией JDK. Рассмотрите возможность обновления или переключения реализаций.

person vlfig    schedule 08.10.2013

В моем сценарии использование loadData с файлом .csv было причиной того, что выполнение liquibase занимало много времени (я использую liquibase 2.0.5).

Например, это набор изменений, который замедляет работу Liquibase:

<changeSet id="foo" author="bar">
    <comment>Baz</comment>
    <loadData encoding="UTF-8"
              separator=";"
              file="some-file.csv"
              tableName="TableName"/>
    <rollback>
        <sqlFile path="rollback.sql" relativeToChangelogFile="true" splitStatements="false" />
    </rollback>
</changeSet>
person Marlon Bernardes    schedule 07.03.2014