SQL查询占用太多时间

时间:2013-11-19 21:06:54

标签: sql sql-server-2008

我每次从5个文件中读取大量数据,每个文件有100,000条记录,使用SQL查询将其插入表中需要花费太多时间。是否有任何方式插入表格花费更少的时间?

我的SQL查询是

comm = new SqlCommand("INSERT INTO try(DistrictName, TownName, FarmerName, Area, VarietyOfCrop) " + 
                      "VALUES(@p1, @p2, @p3, @p4, @p5)", con);

comm.Parameters.AddWithValue("@p1",DataTokenz[0]);
comm.Parameters.AddWithValue("@p2", DataTokenz[1]);
comm.Parameters.AddWithValue("@p3", DataTokenz[2]);
comm.Parameters.AddWithValue("@p4", DataTokenz[3]);
comm.Parameters.AddWithValue("@p5", DataTokenz[4]);

1 个答案:

答案 0 :(得分:2)

逐行插入是非常昂贵的&坏主意。

您可以使用SqlBulkCopybcp(您将需要bulkadmin权限)。

如MSDN文档中所述:
还有其他方法可以将数据加载到SQL Server表中(例如INSERT语句),但SqlBulkCopy比它们具有显着的性能优势。