Самый быстрый способ скопировать данные таблицы в oracle / postgresql - PullRequest
0 голосов
/ 04 мая 2020

Я смотрю на приложение весенней загрузки, которое используется для копирования данных из временной таблицы в постоянную таблицу на основе даты последнего обновления. Он копируется только в том случае, если дата последнего обновления превышает желаемую дату, поэтому копируются не все записи. В настоящее время в таблице содержится около 300 тыс. Записей, и процесс с пружиной JPA занимает более 2 часов (для всех) и неосуществим. Цель состоит в том, чтобы максимально снизить его до 15 минут. Я пытаюсь понять, какую разницу принесет использование JDBCtemplate. Будет ли сценарий pl / sql лучшим вариантом? Также хотел посмотреть, есть ли лучшие варианты там. Цените ваше время.

В настоящее время используется база данных oracle, но миграция postgresql на картах.

Спасибо!

1 Ответ

2 голосов
/ 04 мая 2020

Вы можете выполнить эту операцию с прямым запросом SQL (который будет работать на Oracle или PostgreSQL). Предполагая, что ваша temp_table имеет те же столбцы, что и постоянная таблица, последний обновленный столбец даты называется last_updated, и вы хотите скопировать все записи, обновленные начиная с 2020-05-03, вы можете написать запрос, например:

INSERT INTO perm_table
SELECT *
FROM temp_table
WHERE last_updated > TO_DATE('2020-05-03', 'YYYY-MM-DD')

В вашем приложении вы можете передать '2020-05-03' через заполнитель напрямую или через JdbcTemplate.

...