我正在尝试从 SQL Server 中提取一个大型数据集(140 万条记录)并转储到 WinForms 应用程序中的文件。我试图通过分页来做到这一点,这样我就不会一次在内存中保存太多,但是进程在运行时会继续增加它的内存占用。大约 25% 通过,它占用了 600,000K。我做错了分页吗?我能得到一些关于如何防止内存使用量增长如此之多的建议吗?
var query = (from organizations in ctxObj.Organizations
where organizations.org_type_cd == 1
orderby organizations.org_ID
select organizations);
int recordCount = query.Count();
int skipTo = 0;
int take = 1000;
if (recordCount > 0)
{
while (skipTo < recordCount)
{
if (skipTo + take > recordCount)
take = recordCount - skipTo;
foreach (Organization o in query.Skip(skipTo).Take(take))
{
writeRecord(o);
}
skipTo += take;
}
}