Я не верю, что есть какой-либо реальный способ достичь # 3 или # 4 в вашем списке.
Из других решений, перечисленных вами, два, в которых файл данных содержит прямой SQL, а в другом - данные в формате, отличном от SQL.
Все три сработали бы просто отлично, но последнее предложение по сбору данных из отформатированного файла и созданию SQL-кода само по себе кажется самым чистым. Если позднее добавится возможность пакетного обновления, ваш файл данных будет по-прежнему пригоден для использования или, по крайней мере, легко перерабатывается в удобную форму. Кроме того, создание файла данных является более простым и менее подверженным ошибкам. Наконец, наличие «сырых» данных позволит импортировать их в другие форматы хранилища данных.
В любом случае вам следует (как вы упомянули) заключить группы вставок в транзакции, чтобы избежать создания журнала транзакций для каждой строки.