Ich muss ca. 30k Zeilen aus einer CSV-Datei in meine SQL-Datenbank importieren, dies dauert leider 20 Minuten.Wie beschleunige ich DbSet.Add()?
Fehlerbehebung mit einem Profiler zeigt mir DbSet.Add nimmt die meiste Zeit, aber warum?
Ich habe diese Entity Framework-Code-First-Klassen:
public class Article
{
// About 20 properties, each property doesn't store excessive amounts of data
}
public class Database : DbContext
{
public DbSet<Article> Articles { get; set; }
}
Für jedes Element in meinem for-Schleife tun I:
db.Articles.Add(article);
Außerhalb der for-Schleife ich tun:
db.SaveChanges();
Es ist mit meinem lokalen SQLExpress-Server verbunden, aber ich denke, es gibt nichts geschrieben bis Sav eChanges wird aufgerufen, also ich denke, der Server wird nicht das Problem sein ....
Hallo. Haben Sie Entity Framework losgeworden oder sqlbulkcopy zusammen mit EF verwendet? Ich bekomme das gleiche Problem mit. Add() –
Wenn Sie diese setzen: 'db.Configuration.ValidateOnSaveEnabled = false; db.Configuration.AutoDetectChangesEnabled = false; ' Es gibt einen enormen Leistungszuwachs. Sie müssen sich Ihrer Werte sicher sein. –
Verwenden Sie Backticks (') für Code in Kommentaren. Sieht interessant aus, ich werde später in diese Eigenschaften schauen ... –