我的表里面有70W条数据,Update需要2个小时,太慢了。有什么方法能快点儿吗?
下面是我的代码:SqlDataAdapter da = new SqlDataAdapter(sql, conn);
SqlCommandBuilder cm = new SqlCommandBuilder(da);
cm.GetUpdateCommand().CommandTimeout = 0;DataTable dt = new DataTable(table);
da.Fill(dt);foreach (DataRow row in dt.Rows)
{
row["field"] = "new";
}da.Update(dt);

解决方案 »

  1.   

    不能直接用DB提供的工具写SQL?
      

  2.   

    直接用sql语句写
    这样每条执行 服务器就爆了
      

  3.   

    有啊,你更新的时候,从原来的DATATABLE里用GETCHANGES方法,只取得修改了的部分进行UPDATE.
    DataRow drs = dtTAble1.GetChanges();
    只对修改了的部分进行更新.
      

  4.   

    当然70万条更新的数据都是相同的更新方法的时候就用SQL语句啦
      

  5.   

    update aaa set bbb='new' where ...
      

  6.   


    用一条SQL句进行批更新。每条都循环的话,会累死Server
      

  7.   

    如果用sql语句来update,
    在大量执行时,应该先把语句拼接好,如每200条update语句拼在一起
    然后再执行,因为如果一条一条执行,每次与服务器与客户端的通信都是有代价的
    同时,一些数据库可能对每一次执行的语句执行事务,这也有消耗..
      

  8.   

    怎么把200条SQL语句拼在一起?
    不知道SqlDataAdapter.Update() 是怎么处理的,也不知道如何控制它的处理。