当前的数据导出程序不期望大小,它使用实体框架并将IQueryable转换为列表以便导出。 Ram 16 GB在运行时不足。
我读到有两个选项可以避免这种情况,例如DataReader迭代和BCP。 但是我不确定2分。
有人可以提出建议。
答案 0 :(得分:1)
如果您想要导出的结果中没有任何大的BLOB数据,我肯定会使用DataReader(作为评论中的@TrevorAsh点)。您可以使用它来批量复制数据,这将解决您的内存问题。
一旦您开始阅读您可以直接或以您选择的批量存储结果。如果它不够快你可以将结果分成多个集合并在多个线程中读取它们,但这实际上取决于你的场景......
替代方法是将partition源数据导入SQL Server上的多个文件组/文件,然后备份&仅复制包含数据的mdf文件备份