Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Inserisci rapidamente 2 milioni di righe in SQL Server

  1. Penso che sia meglio leggere i dati del file di testo in DataSet

  2. Prova SqlBulkCopy - Inserimento in blocco in SQL dall'app 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();
    

o

dopo aver eseguito il passaggio 1 in alto

  1. Crea XML da DataSet
  2. Passa XML al database ed esegui l'inserimento collettivo

puoi controllare questo articolo per i dettagli:Inserimento in blocco di dati utilizzando C# DataTable e la funzione OpenXML del server SQL

Ma non è stato testato con 2 milioni di record, consumerà memoria sulla macchina poiché devi caricare 2 milioni di record e inserirlo.