Einfügen großer Datensätze mit SqlBulkCopy und Listen
Frage: Wie fügt man große Datensätze mithilfe von SqlBulkCopy als Datenquelle effizient in eine Datenbanktabelle ein? ist eine Liste von einfachen Objekte?
Antwort:
Erwägen Sie die Nutzung von FastMember, um den Prozess zu vereinfachen, ohne auf Zwischendatenstrukturen wie DataTable angewiesen zu sein. Dadurch kann die Leistung erheblich verbessert werden. Hier ist ein Beispiel:
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
Der ObjectReader von FastMember kann nicht generische Datenquellen verarbeiten und unterstützt die dynamische Angabe von Mitgliedsnamen, ohne sie vorher explizit zu definieren. Die Verwendung der ColumnMappings von SqlBulkCopy kann jedoch von Vorteil sein, wenn Sie in ObjectReader keine Mitgliedsnamen angeben.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von SqlBulkCopy und Objektlisten effizient große Datensätze in SQL Server einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!