Tom*_*len 1 c# linq sql-server performance
我HashHash在表格中插入了一个新列.然后我需要编写一个小函数来设置HashHashto 的值Sha1(Row.Hash):
public static void UpdateAllHashHashes()
{
using (var db = new MainContext())
{
var q = db.v2Hashes;
foreach (var rec in q)
{
rec.HashHash = GetSha1(rec.Hash);
db.SubmitChanges();
}
}
}
Run Code Online (Sandbox Code Playgroud)
该表有数千条记录.我第一次跑它,花了好几分钟.它在结尾附近引发了一个错误,导致它没有完成,并留下了大约20条未经处理的记录,这是我期待的,所以我再次运行该函数以获得最后工作正常的记录.
第二次传递的原因是如此之快,因为db.SubmitChanges实际上没有执行SQL因为值没有改变?我仍然希望它运行UPDATESQL查询.
或者,这是一个数据库引擎优化吗?
提交更改仅执行实际更改的更改.将值12更新为新值12不是一个变化.
http://msdn.microsoft.com/en-us/library/bb292162(v=vs.110).aspx
所以是的,你的怀疑是正确的.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |