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

Indsæt hurtigt 2 millioner rækker i SQL Server

  1. Jeg tror, ​​det er bedre at læse data fra tekstfil i DataSet

  2. Prøv SqlBulkCopy - Bulk Insert i SQL fra C# App

    // 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();
    

eller

efter at have udført trin 1 øverst

  1. Opret XML fra datasæt
  2. Send XML til databasen og foretag masseindsættelse

du kan tjekke denne artikel for detaljer:Masseindsættelse af data ved hjælp af C# DataTable og SQL server OpenXML-funktion

Men den er ikke testet med 2 millioner rekorder, den vil kun bruge hukommelse på maskinen, da du skal indlæse 2 millioner record og indsætte den.



  1. Brug af data beskyttet med en Azure Key Vault fra Linux

  2. Opret SQL Server-job automatisk

  3. Hvordan fjerner man alle ikke-alfanumeriske tegn fra en streng i MySQL?

  4. hente parameter fra lagret procedure?