Jac*_*ope 2 c# sql-server-2005 linq-to-sql
我有一些文本数据,我使用这种方法使用Linq-to-SQL加载到SQL Server 2005数据库中(伪造代码):
Create a DataContext
While (new data exists)
{
Read a record from the text file
Create a new Record
Populate the record
dataContext.InsertOnSubmit(record);
}
dataContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
代码是一个小C#控制台应用程序.到目前为止这个工作正常,但我要导入真实数据(而不是测试子集),这包含大约200万行而不是我测试过的1000行.我是否必须做一些聪明的批处理或类似的事情,以避免代码崩溃或表现糟糕,或者Linq-to-SQL应该优雅地处理这个问题?
看起来这样可行但是DataContext保留的更改(以及因此内存)将随着每个InsertOnSubmit而增长.也许建议每100条记录执行一次SubmitChanges?
我还要看一下SqlBulkCopy,看看它是否更适合你的用例.