Суть проблемы в следующем, с помощью sql запроса я получаю таблицу с 19000 строк.
Далее мне нужно на основе данных этой таблицы заполнить другую таблицу:
for (int i = 0; i < data.Rows.Count; i++)
{
ClearCurrentConsoleLine(menuBaseString.Length, menuBaseString.Length + 1);
Console.Write(i + "\\" + data.Rows.Count);
var row = data.Rows[i];
context.Pages.Add(new Page()
{
//...
Catalog_Id = Convert.ToInt32(row.ItemArray[2]),
CatalogName = row.ItemArray[3].ToString(),
CatalogIdentifer = row.ItemArray[4].ToString(),
//...
});
}
context.savechanges();
Проблема в том что первые 3000 строк обрабатываются довольно быстро(5 мин) , но потом процесс перебора резко замедляется и в общей сложности такая операция занимает примерно 1,5-2 часа.
Можно ли как то оптимизировать данный код?