我可以在 SSRS 报告中获取并显示上次 运行 缓存日期吗?
Can I get and display the Cache Last Run Date in a SSRS Report?
有没有办法从缓存刷新页面获取 SSRS 报告的最后 运行 日期并将其显示在报告中?我希望用户知道上次刷新数据的时间。
您可以直接查询 ReportServer 数据库来完成此操作:
SELECT MAX(els.TimeEnd) AS LastCacheRefresh
FROM dbo.ExecutionLogStorage AS els
INNER JOIN dbo.Catalog AS cat ON els.ReportID = cat.ItemID
WHERE els.RequestType = 2 --Refresh Cache
AND els.Status = 'rsSuccess'
AND cat.Name = 'MyReport'
另外仅供参考,Microsoft 不支持直接查询 ReportServer 数据库,这意味着 fields/schema 可能会在更高版本的 SSRS 中发生变化。
很抱歉为旧线程做出贡献,但没有找到很多关于这个问题的点击率,所以我想添加这个:
如果您在源查询中包含计算字段,则在查询为 运行 时对其进行评估,并与其余数据一起记录。例如:
select
字段1
, getdate() 作为 QueryDateTime
从
SQLServerTable
然后您可以在报告中将该值用作 min/max/first(根据定义,每条记录都相同)。
这必须由服务器提供数据来完成,而不是作为 SSRS 中的计算字段,因为这些是在 运行 时间评估的,与 now() 表达式或全局执行时间变量相同.
一个缺点当然是您正在记录数据并存储它,然后在提取数据时必须检索一堆冗余数据,因此从纯粹主义者的角度来看它并不是很有效I/O。我怀疑在大多数情况下,单个日期值的一列的成本并不过分。
有没有办法从缓存刷新页面获取 SSRS 报告的最后 运行 日期并将其显示在报告中?我希望用户知道上次刷新数据的时间。
您可以直接查询 ReportServer 数据库来完成此操作:
SELECT MAX(els.TimeEnd) AS LastCacheRefresh
FROM dbo.ExecutionLogStorage AS els
INNER JOIN dbo.Catalog AS cat ON els.ReportID = cat.ItemID
WHERE els.RequestType = 2 --Refresh Cache
AND els.Status = 'rsSuccess'
AND cat.Name = 'MyReport'
另外仅供参考,Microsoft 不支持直接查询 ReportServer 数据库,这意味着 fields/schema 可能会在更高版本的 SSRS 中发生变化。
很抱歉为旧线程做出贡献,但没有找到很多关于这个问题的点击率,所以我想添加这个:
如果您在源查询中包含计算字段,则在查询为 运行 时对其进行评估,并与其余数据一起记录。例如:
select 字段1 , getdate() 作为 QueryDateTime 从 SQLServerTable
然后您可以在报告中将该值用作 min/max/first(根据定义,每条记录都相同)。
这必须由服务器提供数据来完成,而不是作为 SSRS 中的计算字段,因为这些是在 运行 时间评估的,与 now() 表达式或全局执行时间变量相同.
一个缺点当然是您正在记录数据并存储它,然后在提取数据时必须检索一堆冗余数据,因此从纯粹主义者的角度来看它并不是很有效I/O。我怀疑在大多数情况下,单个日期值的一列的成本并不过分。