Eu ainda usaria
SqlBulkCopy
para copiar rapidamente seus dados do arquivo externo para uma tabela de preparo que tem a mesma estrutura (plana) do arquivo (você precisará criar essa tabela com antecedência) Uma vez carregado, você pode dividir os dados em várias tabelas usando, por exemplo, um procedimento armazenado ou algo assim - deve ser bem rápido, já que tudo já está no servidor.