Maison >base de données >tutoriel mysql >Comment insérer efficacement de grands ensembles de données à partir d'une liste à l'aide de SqlBulkCopy ?

Comment insérer efficacement de grands ensembles de données à partir d'une liste à l'aide de SqlBulkCopy ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 01:04:10482parcourir

How to Efficiently Insert Large Datasets from a List using SqlBulkCopy?

Insertion de données en masse à partir de la liste<> en utilisant SqlBulkCopy

Question : Comment insérer efficacement un grand nombre d'enregistrements à partir d'une liste<> d'objets simples à l'aide de SqlBulkCopy ?

Réponse :

Pour optimiser l'insertion groupée, envisagez d'utiliser la bibliothèque FastMember. Cette approche évite la surcharge de DataTable en diffusant directement les données de la liste d'objets. Voici comment procéder :

using(var bcp = new SqlBulkCopy(connection))
using(var reader = ObjectReader.Create(data, "Id", "Name", "Description"))
{
    bcp.DestinationTableName = "SomeTable";
    bcp.WriteToServer(reader);
}

ObjectReader

ObjectReader vous permet de travailler avec des sources de données non génériques et de déterminer dynamiquement les noms des membres. Toutefois, la spécification initiale des noms de membres améliore les performances. De plus, vous pouvez tirer parti de la fonctionnalité ColumnMappings de SqlBulkCopy pour personnaliser le mappage de colonnes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn