1

我正在处理 RDLC 报告,其中我使用矩阵来显示数据。

但问题是当大量数据正在加载时,报告没有打开,而是显示错误System.Outofmemoryexception.

没有包含大量数据的矩阵的报告运行良好。

我试图加载的记录大约是 80,000 条记录。有人遇到同样的问题吗?

4

1 回答 1

0

当以下一种或多种情况为真时,计算机没有足够的内存来完成请求的操作:

  • 报告太大或太复杂。
  • 其他正在运行的进程的开销非常高。
  • 计算机的物理内存太小。

报告分两个阶段处理。这两个阶段是执行和渲染。此问题可能发生在执行阶段或呈现阶段。

如果在执行阶段出现这个问题,很可能是因为查询结果返回的数据占用了过多的内存。此外,以下因素会影响执行阶段的内存消耗:

  • 分组
  • 过滤
  • 聚合
  • 排序
  • 自定义代码

如果在渲染阶段出现这个问题,原因与报表显示什么信息以及报表如何显示信息有关。

解决方案:

  1. 将 SQL Server 配置为使用超过 2 GB 的物理内存
  2. 安排报告在内存限制较低的非工作时间运行。
  3. 相应地调整 MemoryLimit 设置。
  4. 升级到 64 位版本的 Microsoft SQL Server 2005 Reporting Services。
  5. 重新设计报表,例如在报表查询中返回更少的数据。对报表查询的 WHERE 子句使用更好的限制。将复杂聚合移动到数据源。
  6. 将报告导出为其他格式。您可以通过使用不同的格式来显示 Excel、PDF 等报告来减少内存消耗
  7. 简化报表设计,例如在报表中包含更少的数据区域或控件,或使用钻取报表来显示详细信息。
于 2012-11-28T09:02:28.807 回答