报告服务器报告挂起

时间:2018-03-26 13:20:30

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

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

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

如果通过显示页面的代码隐藏可以实现这一点,我真的很感激。

1 个答案:

答案 0 :(得分:0)

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

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

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

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