Если я правильно понимаю, ваша единственная задача обрабатывается от чтения до загрузки в БД.Вы можете разбить эту задачу на другую задачу в зависимости от ее характера (в центре БД, ЦП или IO).Например, у вас могут быть следующие задачи:
Текущая задача, которая выбирает файл из каталога и передает его следующей задаче.
IOCentric - новая задача для чтения файла и сохранения в памяти, а затем перейти к следующим тактам.
DB centric - новая задача для загрузки данных из памяти в базу данных, а затем очистки памяти.
IO centric - переместить файл в другое место.
Для дальнейшего повышения производительности вы можете реализовать задачу 2, 3, 4, используя потокpool. Это позволит параллельно обрабатывать многие файлы.В зависимости от сложности задачи вы можете добавить или удалить любую задачу из списка в соответствии с вашими требованиями.