Dzień dobry.
W jaki sposób przyspieszyć wstawienie dużej ilości danych testowych (generowanych w programie) do bazy MS SQL Server?
Generuję dane w programie - tworzę listę obiektów o losowych (załóżmy) wartościach właściwości. Generowanie 10 tys obiektów w pamięci zabiera: 0.1150115 sekundy.
Następnie w pętli foreach przechodzę przez całą listę i tworzę obiekty do zapisu do bazy (tutaj jest problem z tego co zauważyłem)
foreach (Line item in linieProd)
{
try
{
var linia = new lines { number = item.Numer, name = item.Nazwa, description = item.Opis,user_id = 1, creation_date = item.DataUtworzenia};
ctx.lines.Add(linia);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message + "\n" + ex.InnerException.Message);
}
}
ctx.SaveChanges();
Generowanie tych 10 tys. obiektów i zapis ich do bazy to około 340 sekund, kolejny insert paczki 10 tys. i kolejne 490 sekund.
Co by tu można zrobić, żeby przyspieszyć zapis do bazy?