Reporting services SSRS报告动态查询在几天后超时

Reporting services SSRS报告动态查询在几天后超时,reporting-services,sp-executesql,Reporting Services,Sp Executesql,我们将SSRS 2012与许多报告一起使用,这些报告由执行动态sql(sp executesql)的存储过程的Query.CommandText引用驱动。这些都是从用户指定报告、条件等的web应用程序中使用的。几天后,报告请求将超时,即使基础存储过程在几秒钟内执行(同一存储过程会提供搜索结果屏幕和报告)。其他不使用动态sql的报告继续正常执行。我们找到的唯一补救办法是重新启动SSRS服务。初始启动后,相同的报告将在几秒钟内执行 SSRS日志似乎没有指出任何问题,尽管我肯定不是阅读它们的专家。比较

我们将SSRS 2012与许多报告一起使用,这些报告由执行动态sql(sp executesql)的存储过程的Query.CommandText引用驱动。这些都是从用户指定报告、条件等的web应用程序中使用的。几天后,报告请求将超时,即使基础存储过程在几秒钟内执行(同一存储过程会提供搜索结果屏幕和报告)。其他不使用动态sql的报告继续正常执行。我们找到的唯一补救办法是重新启动SSRS服务。初始启动后,相同的报告将在几秒钟内执行

SSRS日志似乎没有指出任何问题,尽管我肯定不是阅读它们的专家。比较一个慢的和一个快的似乎只有在开始和结束之间均匀分布的时间戳不同。我们确实看到了“ReportProcessingException:在xx位置没有字段数据”,但在慢速和快速运行时都是如此。当报表处于慢速模式时,从报表门户运行报表大约需要10分钟

我怀疑一些缓存正在进行,SSR正在影响SQL执行计划


非常欢迎任何关于更多细节的建议或请求。

查找参数嗅探。如果您使用的是存储过程,则查找UKNOWN优化作为解决方案。我最近了解到SSRS中的动态查询也可能成为参数嗅探的受害者。请尝试添加提示选项(重新编译)。同时运行sp_updatestats。谢谢您的建议。我正在等待超时条件再次出现以测试这些(在重新启动SSR之前)。由于填充报表的存储过程与网页上用于搜索和报表的存储过程相同,因此我认为执行计划应该是相同的,这在我的脑海中仍然留下了这个问题。我会提供更多的细节,当我有他们。