【发布时间】:2010-11-01 18:31:26
【问题描述】:
我们有一个小型 c# 工具,我们将其用于解析数据文件、构建一些对象并将它们插入数据库。
逻辑本质上是。
string [] lines = File.ReadAllLines("C:\\Temp\\Data.dat")
foreach(string line in lines)
{
MyDataObject obj = ParseObject(line);
myDataContext.MyDataObjects.InsertOnSubmit(obj);
}
myDataContext.SubmitChanges();
一开始这很好,因为数据文件每天只有约 1000 行长 但最近这个文件已经增长到大约 30,000 行,而且这个过程变得非常缓慢。
SubmitChanges() 调用的一切都很好,但是一旦它开始转储过程
30,000 次插入数据库,它只是停止。作为测试,我模拟了 30,000 个插入语句并直接从 QA 运行它们。大约花了 8 分钟。
8 分钟后,C#/Linq 版本只完成了大约 25% 的插入。
有人对我如何优化这个有任何建议吗?
【问题讨论】:
标签: c# sql sql-server linq-to-sql .net-3.5