一次性插入10万条数据,怎么提高效率
我现在一次要像数据库里一次添加10万条数据,有什么办法可以提高添加的效率,,添加10万条信息,该表就6个字段,大概要多长时间,添加完,,有谁知道有效率的添加吗,,,请来的人不要问我为什么添加那么多条数据,,,无聊闲话的别来,,求高手帮忙,谢谢,废话也不多说了,在线等
[解决办法]
/// <summary>
/// SqlDataReader批量添加(没有事务)
/// </summary>
/// <param name="Reader">数据源</param>
/// <param name="Mapping">定义数据源和目标源列的关系集合</param>
/// <param name="DestinationTableName">目标表</param>
public static void MySqlBulkCopy(SqlDataReader Reader, SqlBulkCopyColumnMapping[] Mapping, string DestinationTableName)
{
using(SqlBulkCopy copy=new SqlBulkCopy(ConnectionString))
{
copy.DestinationTableName = DestinationTableName;//设置要添加的表名
if(Mapping!=null)
{
//如果有匹配
foreach (SqlBulkCopyColumnMapping Mapp in Mapping)
{
copy.ColumnMappings.Add(Mapp);
}
}
try
{
copy.WriteToServer(Reader);//批量添加
}
finally
{
Reader.Close();//关闭
}
}
}
#endregion
dataset.Tables[0].Rows[i]["data_time"] = "2222-22-22 22:22:22";
dataset.Tables[0].Rows[i]["data_value"] = 100;
dataset.Tables[0].Rows[i]["devid"] = "DEVID"+count;
dataset.Tables[0].Rows[i].EndEdit();
}
sd.Update(dataset.Tables[0]);
}
dataset.Tables[0].Clear();
sd.Dispose();
dataset.Dispose();
conn.Close();
}
TimeSpan ts = DateTime.Now - begin;
MessageBox.Show("ts = " + ts.TotalMilliseconds);
[解决办法]
DBOpen();
SqlCommand DataCom = new SqlCommand();
SqlDataAdapter DataAD = new SqlDataAdapter();
SqlTransaction Trans = null;
Trans = Conn.BeginTransaction();
DataCom.Connection = Conn;
DataCom.Transaction = Trans;
try
{
DataCom.CommandText = Sql;
DataAD.SelectCommand = DataCom;
SqlCommandBuilder DataComBu = new SqlCommandBuilder(DataAD);
DataAD.Update(Tables);
Trans.Commit();
}
catch
{
Trans.Rollback();
}
finally
{
DBClose();
DataCom.Dispose();
Trans.Dispose();
}