我的表里面有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);
下面是我的代码: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);
这样每条执行 服务器就爆了
DataRow drs = dtTAble1.GetChanges();
只对修改了的部分进行更新.
用一条SQL句进行批更新。每条都循环的话,会累死Server
在大量执行时,应该先把语句拼接好,如每200条update语句拼在一起
然后再执行,因为如果一条一条执行,每次与服务器与客户端的通信都是有代价的
同时,一些数据库可能对每一次执行的语句执行事务,这也有消耗..
不知道SqlDataAdapter.Update() 是怎么处理的,也不知道如何控制它的处理。