Ssrs 2008 直接报告的内存不足异常

Ssrs 2008 直接报告的内存不足异常,ssrs-2008,reporting-services,reportingservices-2005,Ssrs 2008,Reporting Services,Reportingservices 2005,我正在做一份SSRS报告。这是一个直截了当的报告,只需从一个有大约80K条记录的表中呈现数据 报告中未进行聚合或数据处理。大约有50列以及19个报告参数。我只需要在报告中显示这50列(无轴) 在开发服务器上呈现此报告通常需要5分钟左右(非高峰时间)。我们的生产服务器也是如此,但是用户经常出现“内存不足”异常,而且报告参数标准也没有得到利用(这是我从用户那里得到的投诉) 虽然渲染需要很长时间,但我能够在本地过滤条件,没有任何问题 尽管报告很简单,但为什么要花这么长时间来提交报告 当我在VS2008

我正在做一份SSRS报告。这是一个直截了当的报告,只需从一个有大约80K条记录的表中呈现数据

报告中未进行聚合或数据处理。大约有50列以及19个报告参数。我只需要在报告中显示这50列(无轴)

在开发服务器上呈现此报告通常需要5分钟左右(非高峰时间)。我们的生产服务器也是如此,但是用户经常出现“内存不足”异常,而且报告参数标准也没有得到利用(这是我从用户那里得到的投诉)

虽然渲染需要很长时间,但我能够在本地过滤条件,没有任何问题

  • 尽管报告很简单,但为什么要花这么长时间来提交报告

  • 当我在VS2008上点击F5时,报告运行良好,但当我点击“预览”选项卡时,有时会出现内存不足异常

  • 某些列的名称具有“#”字符。如果我在报告中包含这些列,则会引发“内存不足异常”(特别是在预览模式下)。这是真的吗:SSR不喜欢带有“#”的列名吗?我的专栏名是“KLN”

  • 我在表上创建了一个非聚集索引,但这对我没有多大帮助

  • 在预览模式下运行报告与在vs 2008上点击F5有什么区别?当我按F5键时,虽然需要5分钟,但这很好,但预览模式有问题

  • 没有太多的重新设计空间(因为这是一个直截了当的报告),也许我只能删除报告参数


    如果您有任何建议,我们将不胜感激。

    请尝试增加ram,有关类似错误,请参阅本文:

    为什么要花这么长时间渲染…?
    我在表上创建了一个非聚集索引,但这对我没有多大帮助

    因为(AFAIK)SSR将在呈现之前构建报告的内存模型。知道SSR在创建报告时将采取三个步骤:

  • 检索数据
  • 通过组合报表和数据创建内部模型
  • 将报告呈现为适当的格式(预览、html、xls等)
  • 您可以检查以查看每个步骤所需的时间。步骤1可能已经相当快(秒),因此添加的索引并没有解决瓶颈问题。步骤2和步骤3可能需要很多时间,并且需要大量RAM

    SSRS不喜欢带有#??的列名??我的专栏名是KLN

    据我所知,这不应该是个问题。删除该列的可能性更大,仅足以使报表再次运行

    没有什么需要重新设计的(因为它是一个直截了当的报告),比如我可以删除报告参数

    SSRS并不是解决这个问题的合适工具。因此,对于您的问题没有真正的“解决方案”,只有备选方案和变通办法

    解决方法:

    • 正如@glh在他的回答中提到的,为SSR提供更多的RAM可能会“有所帮助”
    • 要求用户使用参数筛选数据(即不允许用户选择所有这些行,仅选择他需要的行)
    • 将报告安排在一个安静的时刻(当有足够的RAM可用时),然后
    备选方案:

    • 创建一个从数据库读取数据并输出Excel的小型自定义应用程序
    • 使用,我认为它更适合这种任务(数据转换和迁移)
    • 重新考虑你的设置。你没有提到你报告的背景,但也许你有一个。也许您的用户需要整个报告,但只需要几个关键行,或者他们只将其用作备份机制(有更好的替代方案),或者

    我们刚刚遇到了类似的情况,并设置了“尽可能在一页上保持一致”Tablix Properties/General/Page break options中的选项处于关闭状态,工作正常。

    除了已发布的答案,以及关于报表设计器或报表管理器中预览的问题,还有另一种可能的解决方案:避免在第一个报表页面上显示过多数据

    它可以通过分页到小的记录量来完成,即通过带有分页符的自定义组或有时自动(参见done_merson的答案)或通过添加简单的封面来完成。 这些解决方案在开发阶段尤其有用,如果您打算将报告结果呈现为Excel或PDF格式

    我有一个类似的例子,内存不足异常,从不返回包含一个简单报告及其包含大约70k条记录的数据集的报告。 查询在大约1-2分钟内执行,但报表设计器和我们的开发SSRS 2008R2服务器(报表管理器)都无法显示结果报表预览。最后,我怀疑HTML预览是瓶颈,并通过添加带有简单文本框的封面来避免它。下一次报告执行耗时约2分钟,并成功显示了带有封面的HTML预览。将完整结果呈现到Excel只需30秒


    希望这将帮助其他人,因为如果您搜索SSR内存不足异常,此页面仍然是最热门的帖子之一。

    IIRC在VS中按F5执行独立预览-在单独的过程中。在VS中使用预览选项卡时,报告将在VS进程中处理。预览时检查VS的内存使用情况。增加RAM,1。您指的是在reporting services/sql server或运行报表的计算机上。2.我看到了其他关于在64位上运行大型报表的文章,所以在reporting services/sql server上或在报表为ranI的计算机上运行64位时,我会怀疑这是在服务器上,因为这会进行处理。老实说,幸运的是@Jeroen可能会遇到很多问题