2012-06-05 5 views
0

Из того, что я вижу, Flyway при предоставлении SQL-файла с некоторыми операторами выполняет их один за другим; как разделитель (это то, что я понял из SqlScript.execute()). Из-за этого применение исправлений на удаленном сервере занимает много времени, потому что каждый оператор файла отправляется индивидуально., выполняющий сразу несколько заявлений

Интересно, возможно ли выполнить «пакетное обновление» путем отправки всего файла в один кусок, а затем применить его сразу. Или, может быть, это ограничение JDBC, против которого мы боремся?

ответ

1

Ваши замечания верны.

Flyway в настоящее время разбивает файлы в отдельных операциях, которые затем отправляются в СУБД с использованием JDBC.

Некоторые СУБД Драйверы Jdbc, такие как устройства из H2 и PostgreSQL, фактически поддерживают отправку более одного оператора на вызов jdbc.

Причина, по которой я решил не использовать это, заключается в том, что вы оцениваете качество сообщений об ошибках для получения потенциального прироста производительности. Кроме того, это решение будет доступно только для пользователей пользователей.

Пакетные обновления действительно могут быть решением перекрестной СУБД для этой проблемы. Пакетирование целого файла, вероятно, не будет идеальным, из-за потенциального взрыва размера и закона убывающей отдачи. Вычисление нескольких утверждений (скажем, 20, 50, или как бы то ни было сладкое пятно) может оказаться ценным. Это не должно сильно влиять на код. В случае, если качество сообщения об ошибках (сбой в заявлении) не оказывает заметного влияния и заметны улучшения производительности, добавление этого должно быть без проблем.

Пожалуйста, поднимите проблему в трекер проблемы, если вы хотите, чтобы это поддерживалось.

+0

Axel, спасибо за быстрый ответ! Создана проблема: http://code.google.com/p/flyway/issues/detail?id=274 –

 Смежные вопросы

  • Нет связанных вопросов^_^