Я полагаю, что Postgres должен преуспеть в этом сценарии.Сценарий достаточно необычен, поэтому ручной вакуум между огромными обновлениями кажется разумным вариантом.
Подумайте, можете ли вы сделать так, чтобы вместо огромных обновлений вы генерировали новый набор таблиц, анализировали их (необходимо)!), а затем, с силой транзакционного ddl, отбросьте старые и переименуйте новые на их место.Это должно облегчить Ваши заботы о ВАКУУМЕ.
В таком сценарии Вы должны провести серьезную настройку.Особенно обратите внимание на shared_buffers, параметры, связанные с контрольными точками, и параметры, связанные с вакуумом.Также помните о бенчмаркинге с реалистичными рабочими нагрузками.