【问题标题】:Report Server Reports Hanging报表服务器报表挂起
【发布时间】:2018-03-26 13:20:29
【问题描述】:

我正在处理大型生产数据库中索引严重碎片化的问题。我几乎已经确定了严重分散的索引,包括那些没有真正被使用的索引。我计划重建一些并移除其他的。所以我的下一步是设计一个前后时间测试。

其中一个症状是 SSRS 报告需要大约一个小时才能呈现。我是 Reports Services 的新手。我可以看到使用 ReportViewer 控件并设置了 ServerPort ReportPath 和 ReportServerUrl 属性的报表被嵌入到 ASPX 页面中。我的问题是试图弄清楚如何在代码隐藏中从头到尾显示报告的时间。我可以将开始时间写入 Page_Load 中的文件,但我不知道如何记录结束时间......预渲染可能会挂起,我不确定这是否是我唯一可以的页面生命周期事件点击进入记录这一点。我应该使用 Windows 服务吗?如果是,我将如何以这种方式触发/记录开始和结束时间?

如果这可以通过显示页面的代码隐藏,我非常感谢一些反馈。

【问题讨论】:

  • 您是否尝试过查看 Reporting Services 执行日志。其中包含几个定时事件,例如数据检索时间、渲染时间、处理时间以及实际开始和结束时间。检查ReportServer.dbo.ExecutionlogReportServer.dbo.Catalog
  • 我只能看到一个包含这些字段的 ExecutionLogStorage 表。我试着运行这个:“SELECT TOP (10) * FROM ExecutionLogStorage ORDER BY TimeDataRetrieval DESC”但得到了“System.OutOfMemoryException”类型的异常。
  • 他们应该在那里(视图)。 docs.microsoft.com/en-us/sql/reporting-services/report-server/… 还确保报告服务器配置中的保留期未设置为 0。
  • 不确定在哪里检查?在我的本地(32GB)上只运行 SSMS,无论我如何过滤我的查询,我都会遇到内存不足的异常。查看我的内存使用情况,运行查询时它远未达到峰值。如何确定 ReportID 提交的报告是指哪个报告?
  • 感谢您的帮助艾伦。我通过使用 SQLCMD 工具运行查询来解决内存问题。请随时将此添加为答案,我会将其标记为已接受。 docs.microsoft.com/en-us/sql/relational-databases/scripting/…

标签: asp.net reporting-services reportviewer ssrs-2014


【解决方案1】:

您是否尝试过查看 Reporting Services 执行日志。其中包含几个定时事件,例如数据检索时间、渲染时间、处理时间以及实际开始和结束时间。检查 ReportServer.dbo.Executionlog 和 ReportServer.dbo.Catalog

检查日志设置。使用 SQL Server Management Studio(不是数据库引擎,从连接对话框中选择 Reporting Services)连接到您的 SSRS 服务器。连接后,右键单击服务器并选择属性。在日志记录选项卡上,您将看到要保留的历史记录天数。默认为 60 天。

假设不为零,那么您可以执行类似这样的简单查询来获取报表执行详细信息。

SELECT * 
    FROM ReportServer..ExecutionLog e
       JOIN ReportServer..Catalog c
          ON e.ReportID = c.ItemID
    WHERE c.name = 'myReportName'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多