sql >> Base de Datos >  >> RDS >> Sqlserver

Inserte 2 millones de filas en SQL Server rápidamente

  1. Creo que es mejor que leas los datos del archivo de texto en DataSet

  2. Pruebe SqlBulkCopy - Inserción masiva en SQL desde la aplicación 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

después de hacer el paso 1 en la parte superior

  1. Crear XML a partir de un conjunto de datos
  2. Pasar XML a la base de datos y realizar una inserción masiva

puede consultar este artículo para obtener más detalles:Inserción masiva de datos mediante C# DataTable y la función OpenXML del servidor SQL

Pero no se probó con 2 millones de registros, solo consumirá memoria en la máquina, ya que debe cargar 2 millones de registros e insertarlos.