Итак, мне нужно импортировать файл CSV (размером до 500 МБ) в базу данных ASP.NET Core 2.1 в MS SQL.
Для импорта я использую Sql Bulk insert, все нормально, но некоторыезагрузки займет около 20 минут.Даже если эти запросы с импортом будут редкими.Но я все еще думаю, как сделать его лучше с помощью CallBack, поэтому, когда я начинаю импорт, я возвращаю ответ, и в фоновом потоке будет активная задача, которая будет готова получить информацию об успешном завершении импорта.
Что вы думаетестоит ли или может быть есть лучшее решение?
public async Task AddBulk<T>(IDataReader data) where T : class, new()
{
if (Connection.State == ConnectionState.Broken || Connection.State == ConnectionState.Closed)
{
await Connection.OpenAsync();
}
using (SqlBulkCopy bulk = new SqlBulkCopy(Connection))
{
bulk.DestinationTableName = "Test_Data_Table";
bulk.BatchSize = 5000;
bulk.EnableStreaming = true;
bulk.WriteToServer(data);
data.Close();
}
}