Spring Batch Оптимизация советы - PullRequest
0 голосов
/ 04 мая 2020

Мои весенние пакетные задания извлекают данные из таблицы 1 из oracle БД и записывают их в postgres БД на шаге 1.

Те же данные о извлечении задания из таблицы 1 и таблицы 2 с помощью запроса равного объединения oracle БД и запишите их в postgres БД на шаге 2.

Оба шага 1 и шаг 2 выполняются параллельно с использованием разделенной логики потока c.

Я поделился с ThreadPoolTaskExecutor на обоих шагах и число порожденных потоков равно числу процессоров + 1.

Размер порции настроен как 1000

Я протестировал это пакетное задание из моей локальной системы , имеющей 8 процессоров, Oracle БД размещается на удаленном компьютере, а postgres БД размещается на postgres testcontainers.

8 процессоров: 9 потоков за 2 шага: 2 шага параллельно

Как выборка, так и запись 50K записей в таблице 1 и таблице 2 postgres DB, это занимает 26 минут 10,945 секунд

i.e. 100K records are read and written in 26 minutes 10.945 seconds.

Могу ли я сказать, что моя пакетная работа в локальной среде работает оптимальным образом?

Если нет, то какие еще факторы я должен учитывать в плане дизайна или инфраструктуры для повышения производительности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...