缓存共享数据集:执行时间?

时间:2010-08-27 19:50:31

标签: reporting-services ssrs-2008

SQL Server Reporting Services(SSRS)2008 R2

我已经设置了一个共享数据集,需要几分钟才能执行。它由三份报告共享,是这些报告的核心数据。 (参数填充报告中存在一些其他数据集。)

我已在数据集上启用了缓存,并希望将数据集执行时间添加到报表的页脚。我想我可以用SQL中的当前时间向数据集添加一列,但有没有任何SSRS函数可以提供给我?

2 个答案:

答案 0 :(得分:1)

您可以在页脚中添加以下内容:

="Render Duration: " +
IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).TotalSeconds < 1, "0 seconds",
(
IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).Minutes > 0, System.DateTime.Now.Subtract(Globals!ExecutionTime).Minutes & " minute(s), ", "") +
IIf(System.DateTime.Now.Subtract(Globals!ExecutionTime).Seconds > 0, System.DateTime.Now.Subtract(Globals!ExecutionTime).Seconds & " second(s)", ""))
)

所以一个基本的渲染时间,我知道这不是你想要的,但我知道获取数据检索时间的唯一方法是从报表服务器数据库中的报表执行表。

答案 1 :(得分:1)

我找不到纯粹的SSRS方法来获取这个,所以正如我在原帖中所提到的,我在共享数据集查询中添加了一个字段/列。它现在开始于:

SELECT
GETDATE() AS DataSetExecutionTime,
...
...

然后在报告的页脚中我有一个

=First(Fields!DataSetExecutionTime.Value, "DataSetName")

感谢Daytona的帮助......

JF