Frage: So fügen Sie effizient eine große Anzahl von Datensätzen aus einer Liste ein<> von einfachen Objekten mit SqlBulkCopy?
Antwort:
Um die Masseneinfügung zu optimieren, sollten Sie die Verwendung der FastMember-Bibliothek in Betracht ziehen. Dieser Ansatz vermeidet den Overhead von DataTable, indem die Daten direkt aus der Objektliste gestreamt werden. So geht's:
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
ObjectReader ermöglicht Ihnen die Arbeit mit nicht generischen Datenquellen und die dynamische Bestimmung von Mitgliedsnamen. Allerdings verbessert die vorherige Angabe der Mitgliedsnamen die Leistung. Darüber hinaus können Sie die ColumnMappings-Funktion von SqlBulkCopy nutzen, um die Spaltenzuordnung anzupassen.
Das obige ist der detaillierte Inhalt vonWie füge ich mit SqlBulkCopy effizient große Datensätze aus einer Liste ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!