如何调试SSRS多次调用SQL Server?RDL仅定义一次存储过程
问题:SSRS报表生成时存储过程重复调用的原因排查
问题背景
我有一个RDL报表,生成包含约60行数据的原始Excel文件耗时超35秒,但存储过程runPNL本身仅需11秒左右即可完成。
应用架构
Appl <----> SSRS <----> SQL Server
已调试场景
- 场景A:从“Appl”生成报表,耗时超35秒
- 场景B:从SSRS端点(https:///ReportServer/Pages/ReportViewers.aspx........)生成报表,耗时超22秒
SQL Profiler跟踪结果
- 场景A下,SQL Profiler显示
runPNL被调用3次 - 场景B下,SQL Profiler显示
runPNL被调用2次
SSRS ExecutionLog3跟踪结果
执行语句SELECT TOP 100 * FROM ExecutionLog3 ORDER BY TimeStart DESC跟踪SSRS,结果如下:
- 场景A仅显示1次活动,而非3次
- 场景B仅显示1次活动,而非2次
疑问
RDL文件中不存在TotalPages这类全局变量,且仅引用了一次该查询,请问是什么原因导致SQL Server出现额外调用?这些额外活动未被记录到ExecutionLog3表中,属于SSRS的Bug吗?目前尚未尝试配置SSRS超时等操作。
内容的提问来源于stack exchange,提问作者Stuart Ng
相关产品推荐
相关产品推荐

