Tengo el siguiente método para insertar millones de filas de datos en una tabla (uso SQL 2008) y parece lento, ¿hay alguna manera de acelerar INSERT?speed up sql INSERTs
Aquí es el fragmento de código - Yo uso la biblioteca de la empresa MS
public void InsertHistoricData(List<DataRow> dataRowList)
{
string sql = string.Format(@"INSERT INTO [MyTable] ([Date],[Open],[High],[Low],[Close],[Volumn])
VALUES(@DateVal, @OpenVal, @High, @Low, @CloseVal, @Volumn)");
DbCommand dbCommand = VictoriaDB.GetSqlStringCommand(sql);
DB.AddInParameter(dbCommand, "DateVal", DbType.Date);
DB.AddInParameter(dbCommand, "OpenVal", DbType.Currency);
DB.AddInParameter(dbCommand, "High", DbType.Currency);
DB.AddInParameter(dbCommand, "Low", DbType.Currency);
DB.AddInParameter(dbCommand, "CloseVal", DbType.Currency);
DB.AddInParameter(dbCommand, "Volumn", DbType.Int32);
foreach (NasdaqHistoricDataRow dataRow in dataRowList)
{
DB.SetParameterValue(dbCommand, "DateVal", dataRow.Date);
DB.SetParameterValue(dbCommand, "OpenVal", dataRow.Open);
DB.SetParameterValue(dbCommand, "High", dataRow.High);
DB.SetParameterValue(dbCommand, "Low", dataRow.Low);
DB.SetParameterValue(dbCommand, "CloseVal", dataRow.Close);
DB.SetParameterValue(dbCommand, "Volumn", dataRow.Volumn);
DB.ExecuteNonQuery(dbCommand);
}
}
¿Se insertan estos datos mientras que las actividades SELECT pueden ser simultáneas? –
No, yo soy el único usuario para ese db. – sean717
En ese caso, el consejo sobre este hilo http://stackoverflow.com/questions/751039/slow-bulk-insert-for-table-with-many-indexes sobre deshabilitar índices podría ser beneficioso. –