0

我正在尝试执行一份 SSRS 2005 报告。该报告采用一个参数。如果我不使用参数并直接写入值,那么它将在 10 秒内运行。例如。

Select * from table1 where id = 122

如果我使用参数,则需要很长时间,例如 10 到 15 分钟

Select * from table1 where id = @id

我不知道为什么会发生这种情况。

提前致谢。

4

2 回答 2

0

1)尝试用连接逻辑替换您的子查询。尽量做到最好。我知道很多时候子查询感觉更合乎逻辑,因为当我们在宏观视图中思考[这个结果集]得到[那个结果集]时,它使问题流过。2)也可以放索引。而且由于它的 int 会更快。

于 2014-01-29T19:27:16.303 回答
0

不可能回答所问的问题:只有有信息来确定为什么事情表现不佳。

然而,我们可以做的是回答“如何调查 SSRS 性能问题?”这个问题。到目前为止,我发现的最好的工具之一是使用 ReportServer 目录数据库中的ExecutionLog2 视图。在您的情况下,要查看的重要列:

  • TimeDataRetrieval,用于连接到数据源和检索数据行所花费的时间
  • TimeProcessing,用于将数据行转换为报告所花费的时间
  • TimeRendering,用于创建最终输出(pdf、html、excel 等)所花费的时间

这将为您提供进一步调查的起点。最有可能(根据您的描述)我猜问题出在第一位。一个合适的后续步骤是分析 SSRS 执行的查询,可能使用执行计划。

于 2012-08-01T19:01:25.163 回答