4

有一个我在 VS 2008 中创建的 SSRS。SQL server = 2008r2,使用我的域凭据进行身份验证登录。

我拥有的报告上有大约 12 个左右的 TableX 控件,其中包含各种查询以生成活动摘要报告。

我昨天离开时一切都很好,但是,当我今天早上进来时,当我单击“预览”(或在调试器中运行报告)时,报告只是挂起。我看到的只是“正在生成报告”,然后我必须进入任务管理器并杀死 devenv.exe 才能从中恢复。

在报表设计器中,我单独运行了每个查询,以验证没有“长时间运行”的查询并且没有。每个需要大约一秒钟才能返回结果。包中的其他报告运行良好,只是这个是一个问题。

有什么地方我可以看,还是我必须开始一一删除TableX才能找到罪魁祸首(如果这就是问题的话)。

谢谢

坦率

4

3 回答 3

6

是时候将我的评论放入答案中了(即使您已经尝试过其中的一些)。您要求找出报告的哪一部分妨碍执行的方法,这是我的 2 cts。

遇到困难时可以尝试的第一件事:

  • 重新启动 Visual Studio(好的 'ole“你试过把它关掉然后再打开吗?”)
  • 删除 .data 文件以强制刷新正在查询的数据

如果您想更深入地了解并访问真正的报表服务器:

一些其他可能有帮助的事情:

  • 在 Visual Studio 和/或 SSMS 中分别运行查询,最好使用与触发报告的参数值相同的参数值(为了完整性而提到这一点,但问题已经表明这没有解决任何问题)
  • 尝试针对最近的数据库备份(如果可用)运行报告,最近的数据更改或增加可能是您遇到问题的原因
  • 查看 RDL 代码,特别是查询,并寻找问题 :)
  • 在所有查询中包含一个TOP 10或类似的内容,以找出是哪一个导致了问题。

失败所有我认为你最好的选择是你已经提到的:找到有问题的 tablix 并通过消除过程进行查询。

作为最后的想法,导致我们在 SSRS 中 99% 的性能问题的两件事:

  1. 使用大量数据和/或时髦的格式/布局表达式进行透视(例如:带有动态列的 tablix)。
  2. 过度使用子报表。

希望这对您或任何未来的访客有所帮助。如果不确定在这里回答您自己的问题,并告诉我们您最终是如何解决问题的。

于 2012-05-30T17:59:31.767 回答
3

虽然这个问题已有多年历史,但我在试图找出自己的问题时发现了它。这是我的解决方案,以防万一它对其他人有帮助:

关闭连接到相关数据库的任何 Server Management Studio 实例。

在我的例子中,我打开了 SSMS 并从另一台计算机连接到数据库服务器,并且一直在我的报告试图连接到的同一数据库上测试一些长时间运行的存储过程。一定有一些挥之不去的连接导致它没有响应,因为在 SSRS 中出现问题后,我也开始在 SSMS 中遇到非常简单的查询超时。

一旦我关闭 SSMS 并稍等片刻,我的报告在 SSRS 中运行良好。

于 2014-11-23T01:35:35.237 回答
1

对我来说,关闭 SSMS,重新启动 VS 不起作用。我有一个 SQL Server 没有清理的孤立事务。如果上述方法均无效,则只需执行以下操作,并且对我有用的方法可以解决您的 SSRS 崩溃问题:

IF(SELECT @@TRANCOUNT) > 0
  COMMIT TRANSACTION
于 2018-03-13T19:00:29.070 回答