SSRS - OutOf MemoryException - 可以显示的行数有限制

时间:2009-02-12 17:36:27

标签: reporting-services matrix max rows rdl

我创建了一个rdl文档,指向一个返回90 000行的proc,我得到一个内存不足异常。报告项目可以处理的行数是否有限制?

目前我已经将驱动我的报告的过程更改为仅选择Top 90 000.我的规格是能够创建一个包含12万行的报告。我的报告是一个矩阵。

我发誓上周我发了一个报告,里面有106800行,但现在突然间我不能。

我编写了一个渲染扩展,当我进入代码时,这是异常的一部分。

  

eInfo:2/12/2009 12:03:53   PM prairieFyre.ReportActions.RenderReport:错误呈现报告   Microsoft.Reporting.WinForms.LocalProcessingException:错误   在本地报告处理期间发生。 --->   Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:   报告处理中发生意外错误。 --->   System.OutOfMemoryException:类型的异常   抛出'System.OutOfMemoryException'。在   System.IO.MemoryStream.set_Capacity(Int32值)at   System.IO.MemoryStream.EnsureCapacity(Int32值)at   System.IO.MemoryStream.Write(Byte []缓冲区,Int32偏移量,Int32计数)   在System.IO.BinaryWriter.Write(String value)at   Microsoft.ReportingServices.ReportProcessing.Persistence.IntermediateFormatWriter.ReportServerBinaryWriter.WriteString(字符串   stringValue)....

3 个答案:

答案 0 :(得分:4)

除了硬件配置之外,我认为没有限制。如果您在32位计算机上处​​理此工作进程的工作进程使用的内存少于2 GB,那么当您考虑内核模式内存时,可能接近1 GB。如果你要提供这样的大型报告,你可能需要一个64位的设置,盒子上至少有4个或更多的内存。此设置将允许工作进程分配超过2 gig的可用内存来完成这些大型请求而不会出现问题。

如果不能选择硬件升级,您也可以考虑这些替代方案。

  • 您说该报告是一个矩阵报告,所以听起来您没有向用户显示所有数据,而是聚合它。你能预先在数据库中汇总一些这些数据,然后只使用SSRS进行显示吗?

  • 由于报告只不过是XML文件,因此请在SQL Server中或使用某些脚本或进程构建报告XML字符串。这可能是很多工作。

答案 1 :(得分:3)

堆栈表明用于存储报表执行结果的MemoryStream不能增加(加倍)它的大小。

这通常是由地址空间碎片引起的,通常无法通过添加硬件来解决。

Microsoft ReportViewer在处理的数据量方面受到限制,因为它旨在将中间报告执行结果存储在MemoryStream中,不幸的是,它需要一个平方增长的连续空闲地址空间(在通常的.NET应用程序中)( 2GB地址空间)不大于256MB,通常比这小得多。

例如,在此流中,将存储所有字段值,聚合值,表达式和图像,因此大小直接取决于添加到报表中的数据集的大小。

要分析.NET应用程序的地址空间和对象,最好使用WinDBG(Windows调试工具)和SOS扩展进行调试。

分析地址碎片的有价值的命令是:

  • !address -summary
  • LM
  • !EEHeap -gc
  • !DumpHeap -stat

在这种特殊情况下,可以通过预先聚合数据源中已有的值而不是Matrix中的值来减少数据量。

知识库文章“使用SQL Server Reporting Services时可能会收到'System.OutOfMemoryException'错误消息”[1]提供了进一步的提示。

使用SQL Server Reporting Services时出现

[1]:http://support.microsoft.com/kb/909678“System.OutOfMemoryException”错误消息

答案 2 :(得分:0)

检查您的interactiveHeight属性是否未设置为0。 http://bidn.com/blogs/MMilligan/bidn-blog/2903/ssrs-gotcha-interactiveheight=0