读书人

SqlBulkCopy 批量插入数据 效率有关问

发布时间: 2011-12-11 23:19:43 作者: rapoo

SqlBulkCopy 批量插入数据 效率问题

C# code
 public void testBulk() 
{ DateTime begin = DateTime.Now;
IDataProvider OracleDataPro = DataProvider.CreateDataProvider(DataProvider.DataProviderType.OracleDataProvider);
IDataReader oracleDr = (OracleDataReader)OracleDataPro.RetriveDataReader("select * from zfxfzb.xsjbxxb");
DataTable oracleDr = OracleDataPro.RetriveDataSet("select * from zfxfzb.xsjbxxb").Tables[0];
SqlDataAccess mySda = new SqlDataAccess();
mySda.GetExecute("truncate table XSJBXXB_TEMP");
using (SqlConnection localConn = mySda.GetSqlConnection())
{ localConn.Open();
using (SqlTransaction tran = localConn.BeginTransaction())
{
SqlBulkCopy bulkCopyOrders = new SqlBulkCopy(localConn, SqlBulkCopyOptions.Default, tran);
bulkCopyOrders.DestinationTableName="xsjbxxb_temp";
bulkCopyOrders.ColumnMappings.Add("XH", "XH");
bulkCopyOrders.ColumnMappings.Add("XM", "XM");
bulkCopyOrders.ColumnMappings.Add("XB", "XB");
bulkCopyOrders.ColumnMappings.Add("CSRQ", "CSRQ");
bulkCopyOrders.ColumnMappings.Add("ZZMM", "ZZMM");
bulkCopyOrders.ColumnMappings.Add("MZ", "MZ");
bulkCopyOrders.ColumnMappings.Add("JG", "JG");
bulkCopyOrders.ColumnMappings.Add("LYDQ", "LYDQ");
bulkCopyOrders.ColumnMappings.Add("XY", "XY");
bulkCopyOrders.ColumnMappings.Add("XI", "XI");
bulkCopyOrders.ColumnMappings.Add("ZYMC", "ZYMC");
bulkCopyOrders.ColumnMappings.Add("XZB", "XZB");
bulkCopyOrders.ColumnMappings.Add("XZ", "XZ");
bulkCopyOrders.ColumnMappings.Add("XXNX", "XXNX");
bulkCopyOrders.ColumnMappings.Add("XJZT", "XJZT");
bulkCopyOrders.ColumnMappings.Add("DQSZJ", "DQSZJ");
bulkCopyOrders.ColumnMappings.Add("PYFX", "PYFX");
bulkCopyOrders.ColumnMappings.Add("ZYFX", "ZYFX");
bulkCopyOrders.ColumnMappings.Add("ZYLB", "ZYLB");
bulkCopyOrders.ColumnMappings.Add("RXRQ", "RXRQ");
bulkCopyOrders.ColumnMappings.Add("BYZX", "BYZX");


bulkCopyOrders.ColumnMappings.Add("SSH", "SSH");
bulkCopyOrders.ColumnMappings.Add("DZYXDZ", "DZYXDZ");
bulkCopyOrders.ColumnMappings.Add("LXDH", "LXDH");
bulkCopyOrders.ColumnMappings.Add("ZKZH", "ZKZH");
bulkCopyOrders.ColumnMappings.Add("SFZH", "SFZH");
bulkCopyOrders.ColumnMappings.Add("GATM", "GATM");
bulkCopyOrders.ColumnMappings.Add("JKZK", "JKZK");
bulkCopyOrders.ColumnMappings.Add("YWXW", "YWXW");
bulkCopyOrders.ColumnMappings.Add("BZ", "BZ");
bulkCopyOrders.ColumnMappings.Add("MM", "MM");
bulkCopyOrders.ColumnMappings.Add("BDH", "BDH");
bulkCopyOrders.ColumnMappings.Add("YYDJ", "YYDJ");
bulkCopyOrders.ColumnMappings.Add("KH", "KH");
bulkCopyOrders.ColumnMappings.Add("ZSSJ", "ZSSJ");
bulkCopyOrders.ColumnMappings.Add("RXZF", "RXZF");
bulkCopyOrders.ColumnMappings.Add("SFYXXS", "SFYXXS");
bulkCopyOrders.ColumnMappings.Add("XSLB", "XSLB");
bulkCopyOrders.ColumnMappings.Add("DJ", "DJ");
bulkCopyOrders.ColumnMappings.Add("SFGSPYDY", "SFGSPYDY");
bulkCopyOrders.ColumnMappings.Add("LQMCJYH", "LQMCJYH");
bulkCopyOrders.ColumnMappings.Add("XMPY", "XMPY");
bulkCopyOrders.ColumnMappings.Add("YHZH", "YHZH");
bulkCopyOrders.ColumnMappings.Add("JXBMC", "JXBMC");
bulkCopyOrders.ColumnMappings.Add("RDSJ", "RDSJ");
bulkCopyOrders.ColumnMappings.Add("ZYDM", "ZYDM");
bulkCopyOrders.ColumnMappings.Add("LJBYM", "LJBYM");
bulkCopyOrders.ColumnMappings.Add("SFLY", "SFLY");
bulkCopyOrders.ColumnMappings.Add("SFKZC", "SFKZC");
bulkCopyOrders.ColumnMappings.Add("CC", "CC");
bulkCopyOrders.ColumnMappings.Add("YZBM", "YZBM");
bulkCopyOrders.ColumnMappings.Add("YYCJ", "YYCJ");


bulkCopyOrders.ColumnMappings.Add("KX", "KX");
bulkCopyOrders.ColumnMappings.Add("SFZX", "SFZX");
bulkCopyOrders.ColumnMappings.Add("XSZH", "XSZH");
bulkCopyOrders.ColumnMappings.Add("USERID", "USERID");
bulkCopyOrders.ColumnMappings.Add("KSLB", "KSLB");
bulkCopyOrders.ColumnMappings.Add("SFZC", "SFZC");
bulkCopyOrders.ColumnMappings.Add("YDLB", "YDLB");
bulkCopyOrders.ColumnMappings.Add("ZYM", "ZYM");
bulkCopyOrders.ColumnMappings.Add("BYRQ", "BYRQ");
bulkCopyOrders.ColumnMappings.Add("CSD", "CSD");
bulkCopyOrders.ColumnMappings.Add("LJB", "LJB");
bulkCopyOrders.ColumnMappings.Add("LJBC", "LJBC");
bulkCopyOrders.ColumnMappings.Add("LJBH", "LJBH");
bulkCopyOrders.ColumnMappings.Add("DZZCH", "DZZCH");
bulkCopyOrders.ColumnMappings.Add("KSH", "KSH");
bulkCopyOrders.ColumnMappings.Add("CCQJ", "CCQJ");
bulkCopyOrders.ColumnMappings.Add("DLMC", "DLMC");
bulkCopyOrders.ColumnMappings.Add("KSTZ", "KSTZ");
bulkCopyOrders.ColumnMappings.Add("TC", "TC");
bulkCopyOrders.ColumnMappings.Add("RXFS", "RXFS");
bulkCopyOrders.ColumnMappings.Add("SFZDS", "SFZDS");
bulkCopyOrders.ColumnMappings.Add("BXXS", "BXXS");
bulkCopyOrders.ColumnMappings.Add("BXLX", "BXLX");
bulkCopyOrders.ColumnMappings.Add("XXXS", "XXXS");
bulkCopyOrders.ColumnMappings.Add("ZSJJ", "ZSJJ");
bulkCopyOrders.ColumnMappings.Add("SHBJ", "SHBJ");
bulkCopyOrders.ColumnMappings.Add("YSHBJ", "YSHBJ");
bulkCopyOrders.ColumnMappings.Add("ZXWYYZ", "ZXWYYZ");
bulkCopyOrders.ColumnMappings.Add("ZXWYJBMC", "ZXWYJBMC");
bulkCopyOrders.ColumnMappings.Add("SFBZLB", "SFBZLB");
bulkCopyOrders.ColumnMappings.Add("DLM", "DLM");


bulkCopyOrders.ColumnMappings.Add("SFKPJ", "SFKPJ");
bulkCopyOrders.ColumnMappings.Add("JTSZD", "JTSZD");
bulkCopyOrders.ColumnMappings.Add("LYS", "LYS");
bulkCopyOrders.ColumnMappings.Add("SFQR", "SFQR");
bulkCopyOrders.ColumnMappings.Add("SFLXS", "SFLXS");
bulkCopyOrders.ColumnMappings.Add("TELNUMBER", "TELNUMBER");
bulkCopyOrders.ColumnMappings.Add("TELLX", "TELLX");
bulkCopyOrders.ColumnMappings.Add("XSMM", "XSMM");
bulkCopyOrders.ColumnMappings.Add("SFQXY", "SFQXY");
bulkCopyOrders.ColumnMappings.Add("BYF", "BYF");
bulkCopyOrders.ColumnMappings.Add("XSCBJ", "XSCBJ");
bulkCopyOrders.ColumnMappings.Add("SFPDG", "SFPDG");
bulkCopyOrders.ColumnMappings.Add("KL", "KL");
bulkCopyOrders.ColumnMappings.Add("YKTID", "YKTID");
bulkCopyOrders.ColumnMappings.Add("LQPC", "LQPC");



[解决办法]
《使用asp.net 2.0中的SqlBulkCopy类批量复制数据》:
介绍:
在软件开发中,把数据从一个地方复制到另一个地方是一个普遍的应用。 在很多不同的场合都会执行这个操作,包括旧系统到新系统的移植,从不同的数据库备份数据和收集数据。 ASP.NET 2.0有一个SqlBulkCopy类,它可以帮助你从不同的数据源复制数据到SQL SERVER数据库。 本文中我将示范SqlBulkCopy类的不同应用。


数据库设计:
这个数据库的设计还是蛮简单的,它基于Northwind数据库的Products表。另外我还在Northwind数据库中创建了3个表。 详情可以看一下下面的数据库关系图。

http://blog.csdn.net/zhoufoxcn/archive/2007/11/07/1871514.aspx

读书人网 >C#

热点推荐