我的表里面有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);
解决方案 »
- xml文件作为水晶报表的数据源
- 关于FileStream的问题
- C#用ras实现ADSL按照给定的账户和密码拨号(电信ADSL)
- listbox 每项设定颜色问题
- 下载一个C#网站,布置到IIS上,访问出现问题:对路径“d:\windows\system32\inetsrv\RuntimeError.log”的访问被拒绝。
- 如何实现以下的功能?
- winform:如何实现project2003中的甘特图啊?
- 谁能介绍下csharp的入门书籍 通俗点的 我刚学
- C#发邮件,从来没成功过
- c#窗体计算器保存的 运算过程
- 在.net 中如何更改安装部署的种个界面的显示语言
- 要用什么数据类型才能保存这样的数据
这样每条执行 服务器就爆了
DataRow drs = dtTAble1.GetChanges();
只对修改了的部分进行更新.
用一条SQL句进行批更新。每条都循环的话,会累死Server
在大量执行时,应该先把语句拼接好,如每200条update语句拼在一起
然后再执行,因为如果一条一条执行,每次与服务器与客户端的通信都是有代价的
同时,一些数据库可能对每一次执行的语句执行事务,这也有消耗..
不知道SqlDataAdapter.Update() 是怎么处理的,也不知道如何控制它的处理。