sql >> Databasteknik >  >> RDS >> Sqlserver

Infoga 2 miljoner rader i SQL Server snabbt

  1. Jag tror att det är bättre att du läser data från textfil i DataSet

  2. Prova SqlBulkCopy - Bulk infoga i SQL från 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 att ha gjort steg 1 överst

  1. Skapa XML från DataSet
  2. Skicka XML till databasen och gör massinsättning

du kan läsa den här artikeln för detaljer:Massinfogning av data med C# DataTable och SQL-serverns OpenXML-funktion

Men den är inte testad med 2 miljoner rekord, den kommer bara att förbruka minne på maskinen eftersom du måste ladda 2 miljoner poster och sätta in den.



  1. Databassäkerhet 101:Säkerhet i databaser med öppen källkod

  2. Hur får man fram räkningen av varje distinkt värde i en kolumn?

  3. När jag anropar PreparedStatement.cancel() i ett JDBC-program, dödar det verkligen det i en Oracle-databas?

  4. Denormalisering:När, varför och hur