Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Insira 2 milhões de linhas no SQL Server rapidamente


  1. Eu acho que é melhor você ler os dados do arquivo de texto no DataSet

  2. Experimente o SqlBulkCopy - Inserção em massa no SQL do aplicativo 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

depois de fazer o passo 1 no topo
  1. Criar XML a partir do DataSet
  2. Passe XML para o banco de dados e faça a inserção em massa

você pode verificar este artigo para detalhes:Inserção em massa de dados usando C# DataTable e função OpenXML do servidor SQL

Mas não foi testado com 2 milhões de registros, apenas consumirá memória na máquina, pois você terá que carregar 2 milhões de registros e inseri-los.