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