Maison > développement back-end > C++ > Comment puis-je insérer efficacement 2 millions de lignes dans SQL Server ?

Comment puis-je insérer efficacement 2 millions de lignes dans SQL Server ?

Barbara Streisand
Libérer: 2025-01-21 14:46:11
original
156 Les gens l'ont consulté

How Can I Efficiently Insert 2 Million Rows into SQL Server?

Insérez efficacement par lots 2 millions de lignes de données dans la base de données SQL Server

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.

Utilisez SqlBulkCopy

La classe SqlBulkCopy est idéale pour les insertions en masse. Il transfère rapidement les données de .NET DataTable ou IEnumerable directement vers les tables SQL Server. En tirant parti des opérations orientées données, il contourne l’insertion traditionnelle ligne par ligne et réduit considérablement le temps de traitement.

Étapes de mise en œuvre

Pour utiliser SqlBulkCopy efficacement, suivez ces étapes :

  1. Établissez une connexion à SQL Server.
  2. Créez une instance SqlBulkCopy, en spécifiant le nom de la table cible et toutes les options souhaitées (par exemple, des déclencheurs).
  3. Ouvrez la connexion.
  4. Utilisez la méthode WriteToServer() pour transférer des données.
  5. Fermez la connexion.

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>
Copier après la connexion

Autres méthodes

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.

Considérations relatives à la mémoire

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal