日期:2014-05-17  浏览次数:20442 次

一次性插入10万条数据,怎么提高效率
我现在一次要像数据库里一次添加10万条数据,有什么办法可以提高添加的效率,,添加10万条信息,该表就6个字段,大概要多长时间,添加完,,有谁知道有效率的添加吗,,,请来的人不要问我为什么添加那么多条数据,,,无聊闲话的别来,,求高手帮忙,谢谢,废话也不多说了,在线等

------解决方案--------------------
引用:
我现在一次要像数据库里一次添加10万条数据,有什么办法可以提高添加的效率,,添加10万条信息,该表就6个字段,大概要多长时间,添加完,,有谁知道有效率的添加吗,,,请来的人不要问我为什么添加那么多条数据,,,无聊闲话的别来,,求高手帮忙,谢谢,废话也不多说了,在线等


这10万条记录从哪来的,如果能直接通过SQL语句在数据库层面处理是最好的了,毕竟应用程序和数据库沟通也是要时间的。
------解决方案--------------------

        /// <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