Если ваш код C # уже медленный с 10 000 строк, я не могу представить его в реальном окружении ...
Большинство ETL выполняются либо внутри базы данных ( хранимые процедуры , пакетыили даже скомпилирован в базе данных (PL / SQL, Java для Oracle)).Они могут обрабатывать миллионы строк.
Или могут использоваться некоторые профессиональные инструменты (Informatica или другие), но они все равно будут работать медленнее, чем хранимые процедуры, но проще в управлении.
Так что мойВывод таков: если вы хотите приблизиться к выполнению хранимых процедур, вам нужно будет написать приложение, столь же хорошее, как и те, которые представлены на рынке, и на его разработку и совершенствование уходили годы ... Как вы думаете, можете?
Кроме того, если вам приходится работать с различными типами баз данных ( SQL Server , Oracle), вы НЕ МОЖЕТЕ создать универсальное приложение и одновременно оптимизировать его, это выбор.Поскольку Oracle работает не так, как SQL Server.
Чтобы дать вам представление, в ETL для Oracle используются подсказки (например, подсказки параллельного выполнения), а также могут быть удалены некоторые индексы или отключена целостность.временно оптимизировать ETL.
Я не знаю, как можно точно сказать, что в SQL Server (у них могут быть похожие параметры, но другой синтаксис).Так что «один ETL для всех баз данных» вряд ли можно сделать без потери эффективности и скорости.
Так что я думаю, что ваши плюсы и минусы очень точны;вам нужно выбирать между скоростью и простотой разработки, но не обоими.