我正在使用以下模式使用 Linq to SQL 更新我的 SQL Server 记录:
List<int> allIds;
using (MyDataContext dc= new MyDataContext())
{
dc.CommandTimeout = 0;
allIds = dc.MyTables.Select(x => x.Id).ToList();
}
Parallel.ForEach(allIds, x => ComputeAndSave(x));
和
ComputeAndSave(int x, MyDataContext dc)
{
var myRecord= dc.MyTables.Select(x => x).Where(x => x.Id == id).FirstOrDefault();
myRecord.Total = myRecord.Total + 1; //some modification(s)
dc.SubmitChanges();
}
我在应用程序的多个部分使用相同的模式来更新某些表中的所有行。并且在所有这些情况下,SQL Server 使用的内存都会慢慢增加、增加和增加。我发现释放所有内存的唯一方法是停止并重新启动 SQL Server 服务。为什么这里有内存泄漏,如何解决?
非常感谢!