【问题标题】:ASP.NET with huge datatable use very high memory具有巨大数据表的 ASP.NET 使用非常高的内存
【发布时间】:2015-10-22 05:17:55
【问题描述】:

我只是创建报告项目。

但我发现当我导出包含许多复杂且非常高记录(1-10M 记录)的报告时,我的服务器的内存负载非常高(16GB+)。

我的流程。 1. 使用 linq to sql 查询数据库并将其存储在数据表中。 2. 然后用openxml导出数据表到excel。

我一直在研究一些,并找到了将数据表切片并导出到 Excel 中的多个工作表的解决方案。

但我认为这不是我真正的目标。 我的问题是如何解决数据表高内存问题?

谢谢。

【问题讨论】:

    标签: asp.net iis memory-management


    【解决方案1】:

    没有理由选择介于两者之间的DataTable。只需将来自IQueryable 的数据直接流式传输到您的 OpenXML 库(即在 Linq 查询结果上使用 foreach 并将每一行推送到您的库中,或手动写入)。

    如果您必须存储它,请使用适当的类。 DataTables 在内部存储为object 的数组列表,因此将所有值类型装箱(这会影响性能和内存使用)。

    【讨论】:

      猜你喜欢
      • 2014-04-19
      • 2023-04-09
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2016-09-05
      相关资源
      最近更新 更多