报表服务器报表挂起

Report Server Reports Hanging

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

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

如果可以通过显示页面的代码隐藏提供一些反馈,我将不胜感激。

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

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

假设它不为零,那么您可以像这样执行一个简单的查询来获取报告执行的详细信息。

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