Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Insérez rapidement 2 millions de lignes dans SQL Server

  1. Je pense qu'il vaut mieux que vous lisiez les données du fichier texte dans DataSet

  2. Essayez SqlBulkCopy - Insertion en masse dans SQL à partir de l'application C#

    // connect to SQL
    using (SqlConnection connection = new SqlConnection(connString))
    {
        // make sure to enable triggers
        // more on triggers in next post
        SqlBulkCopy bulkCopy = new SqlBulkCopy(
            connection, 
            SqlBulkCopyOptions.TableLock | 
            SqlBulkCopyOptions.FireTriggers | 
            SqlBulkCopyOptions.UseInternalTransaction,
            null
            );
    
        // set the destination table name
        bulkCopy.DestinationTableName = this.tableName;
        connection.Open();
    
        // write the data in the "dataTable"
        bulkCopy.WriteToServer(dataTable);
        connection.Close();
    }
    // reset
    this.dataTable.Clear();
    

ou

après avoir fait l'étape 1 en haut

  1. Créer XML à partir de DataSet
  2. Transmettre XML à la base de données et effectuer une insertion groupée

vous pouvez consulter cet article pour plus de détails :Insertion en bloc de données à l'aide de la fonction OpenXML de C# DataTable et du serveur SQL

Mais ce n'est pas testé avec 2 millions d'enregistrements, cela ne fera que consommer de la mémoire sur la machine car vous devez charger 2 millions d'enregistrements et l'insérer.