我每次从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]);
答案 0 :(得分:2)
逐行插入是非常昂贵的&坏主意。
您可以使用SqlBulkCopy或bcp(您将需要bulkadmin权限)。
如MSDN文档中所述:
还有其他方法可以将数据加载到SQL Server表中(例如INSERT语句),但SqlBulkCopy比它们具有显着的性能优势。