В настоящее время я использую Apache Derby в качестве временной локальной базы данных для своего приложения, и мне бы хотелось получить некоторые советы о том, как я могу оптимизировать производительность INSERT.Apache Derby & Java - Оптимизация вложений
Когда приложение запускается, оно считывается в записях из файла CSV - это могут быть миллионы, но более вероятно сотни тысяч. Как только они обрабатываются, запрос SELECT в конце суммирует информацию.
В настоящее время требуется около 1 минуты для вставки 6000 записей. Есть 3 таблицы, 2 из них хранят уникальные данные, и один является таблицей перекодировки между ними - это выглядит следующим образом:
CREATE TABLE table1
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(40))
CREATE TABLE table2
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(100),
field2 INT,
field3 VARCHAR(40))
CREATE TABLE table1table2lookup
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 INT NOT NULL,
field2 INT NOT NULL)
я в настоящее время использую параметризацию PreparedStatements и дозаторных, чтобы попытаться увеличить скорости.
Я также выключил auto commit режим, чтобы я только фиксировал навальную вставку.
Вы пытались использовать инструменты импорта файлов CSV Derby? См. Http://stackoverflow.com/a/2339690/193453 –