Что я могу сделать, чтобы повысить производительность массовой загрузки данных с помощью Derby? - PullRequest
0 голосов
/ 16 ноября 2011

Я использую Derby In-Memory DB.Мне нужно выполнить загрузку некоторых данных из CSV-файлов в начале.На данный момент загрузка всех файлов csv в их таблицы занимает около 25 секунд.Я надеюсь, что время может быть сокращено.Из-за того, что файлы данных на самом деле не очень большие.

Я использовал встроенную процедуру из derby.

{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',1 )} or
{CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (?,?,?,',','"','UTF-8',0 )}

Единственное особенное - иногда данные втаблицы разбиты на множество небольших CSV-файлов.Поэтому я должен загрузить их один за другим. И я проверил, смогу ли я объединить их вместе, это займет всего 16 секунд.Однако я не могу удалить эту функцию, потому что она нужна пользователю.

Могу ли я что-нибудь сделать, чтобы сократить время загрузки данных?Должен ли я отключить журнал или написать какую-то пользовательскую функцию / процедуру, или можно выполнить любую другую мелодию?Любой совет будет в порядке.

Спасибо!

1 Ответ

1 голос
/ 16 ноября 2011

Используйте H2 вместо Derby и используйте функцию CSVREAD . Если это все еще слишком медленно, посмотрите оптимизацию fast import или используйте инструмент CSV напрямую (без использования базы данных). Отказ от ответственности: я написал поддержку CSV для H2.

...