日期:2014-05-20  浏览次数:22014 次

程序中大批量数据导入问题
我用C#做的一东西,需从Excel中导入大量数据到一表,表中存了一些用户信息之类的。如果用户名存在则更新,用户名不存在则插入。
  我是这么做的:先是导入到一张临时表:然后在用
UPDATE t1 SET t1.n=t2.n,........ FROM tab1 t1 inner join tab2 t2 on t1.email=t2.email WHERE t2.UserId=*****

 设置 cmd.CommandTimeout = 600;

 可是现在问题1.导入太慢,2.导入的数据大于一定量时经常报操作超时。
  我现在的想法是我导入的时候不是先从Excel中导入到一DataTable,那我是不是可以在DataTable以2万为一组进行导入,当前面2万导入完成在进行第二个2万的导入依次类推。这样可以避免操作超时了,速度的的话可能会有一定的提升。
   

  现在的问题是我要怎么去知道前面2万导入完成了呢???????如果几个同时进行估计会被锁表的。
  另外如果你们遇到同样的问题会如何处理呢?

------解决方案--------------------
http://www.xueit.com/html/2009-07/21_4166_00.html
------解决方案--------------------
导入过,最大导入过11万条。。。。。

一口气就导入了,全是excel。。。。