Вставьте огромные данные в базу данных Oracle - PullRequest
0 голосов
/ 31 августа 2018

Моя настройка - Oracle DB 12.1C, приложение Spring с Hibernate.

таблица:

create table war
(
  id      int generated by default as identity                  not null constraint wars_pkey primary key,
  t1_id   int references t1 (id) on delete cascade              not null,
  t2_id   int references t2 (id) on delete cascade              not null,
  day     timestamp                                             not null,
  diff    int                                                   not null
);

Я хотел бы вставить 10 000 записей в таблицу. При repository.saveAll(<data>) это занимает 70 с, при использовании JpaTemplate.batchUpdate(<insert statements>) это 68 с. Когда я создаю новую временную таблицу без ограничений, это занимает 65 секунд.

Какой самый лучший / самый быстрый способ, как вставить это количество записей в базу данных Oracle? К сожалению, CSV не вариант.

1 Ответ

0 голосов
/ 09 октября 2018

Моим решением было изменить дизайн нашей модели - мы использовали int_array для хранения diff -> это было почти в 10 раз быстрее, чем первое решение.

...