【发布时间】:2010-09-19 05:17:40
【问题描述】:
我有一个呈现从存储过程返回的数据的报表。使用分析器,我可以捕获报告服务对存储过程的调用。
报告失败,说明报告超时,但我可以从 SSMS 执行存储过程,它会在五到六秒内返回数据。
请注意,在示例测试运行中,只有两行返回到报告以进行呈现,尽管在存储过程中它可能已经处理了数千甚至数百万条记录,以便整理传递回报告服务的结果。
我知道存储过程可以进一步优化,但我不明白为什么 SSRS 会超时,而从 SSMS 执行似乎只需要几秒钟。
另外一个问题也浮出水面。如果我重新创建存储过程,报表将再次完美呈现。没关系,除非在很短的一段时间后,报告再次开始超时。
超时的返回似乎与正在运行报告的主表中添加新数据有关。在我正在测试的示例中,仅插入 100 条新记录就足以搞砸报告。
我更正确地认为,根本原因不是报告。从 SSRS 执行时,是存储过程导致超时。
一旦再次超时,我目前最好的解决方法是重新创建存储过程。这似乎不是一个理想的解决方案。
这个问题似乎也只发生在我们的生产环境中。我们的测试和开发平台似乎没有出现同样的问题。虽然 dev 和 test 的记录量不及生产。
【问题讨论】:
标签: sql-server stored-procedures reporting-services timeout