Lors de l'insertion de quantités massives de données dans une base de données SQL Server, l'optimisation du processus d'insertion est cruciale. Cet article présentera de manière exhaustive la meilleure façon d'insérer efficacement 2 millions de lignes de données.
La classe SqlBulkCopy est idéale pour les insertions en masse. Il transfère rapidement les données de .NET DataTable ou IEnumerable
Pour utiliser SqlBulkCopy efficacement, suivez ces étapes :
Ce qui suit est un exemple C# :
<code class="language-csharp">using (SqlConnection connection = new SqlConnection(connString)) { SqlBulkCopy bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock | SqlBulkCopyOptions.FireTriggers, null); bulkCopy.DestinationTableName = tableName; connection.Open(); bulkCopy.WriteToServer(dataTable); connection.Close(); }</code>
Si l'ensemble de données est stocké dans un fichier texte, envisagez de le lire dans un DataSet et de le convertir en XML à l'aide de la fonctionnalité OpenXML. Ce XML peut ensuite être transmis à la base de données pour des insertions groupées. Cependant, cette approche peut nécessiter des ressources mémoire importantes, notamment pour les grands ensembles de données.
Veuillez noter que le chargement et l'insertion de 2 millions de lignes de données peuvent solliciter la mémoire de votre système. Si nécessaire, envisagez d'utiliser un serveur doté d'une capacité de mémoire suffisante ou explorez d'autres solutions telles que le streaming de données ou les insertions incrémentielles.
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!