SSRS 如何为数据集创建计划刷新

SSRS How to create a scheduled refresh for datasets

所以我在 MSSQL 中有一个视图,Power BI Cloud 每天从中自动读取数据两次。

由于 Power BI 已被证明不可靠 - 刷新失败等 - 我们正在研究其他替代方案。

目前我们已经让人们通过 Excel 的 Power Query 直接访问 MSSQL,但是由于查询本身是一个巨大的东西,我们不希望 5~6 个人去点击刷新-同时快乐并引起任何问题。我们的查询只是 CPU 密集。

所以我们想到的另一个选择是 SSRS,直接从我们的服务器托管,人们可以从中下载 Excel 副本并开始他们的快乐之旅。

我完全没有像以往一样使用过 SSRS,我想知道它是否具有与 Power BI 类似的系统,您可以在其中定义每天的刷新频率,并最终确定。因此,Power BI 数据集每天刷新两次,就是这样。

似乎在 SSRS 中每次有人 运行 报告 - 随后 运行 视图 - 它都会刷新。

我们如何定义对此有意义的控制?例如,我们可以限制数据集每天在 14:30PM 刷新一次吗?如果是怎么办?

任何帮助将不胜感激!

有几种方法可以做到这一点,这里只是一对...

SSRS 支持数据集缓存。您可以定义数据集缓存副本过期的时间段,或者您可以指定缓存副本按计划过期。请注意,这 不会 刷新数据集。

假设您将到期时间设置为 4 小时,这意味着第一个 运行 报告的人将执行查询并缓存数据集 - 这可能需要一些时间,具体取决于您的查询。在 4 小时内 运行 同一报告的下一个用户 window 将重新使用数据集的缓存副本,如果 5 小时后有人 运行 报告,查询将是运行 再次缓存数据集的新副本以供接下来的 4 小时等使用。

这样做的好处是,如果报告不是 运行 一天,数据集查询就不需要执行,缺点是每四个小时,第一个用户会得到命中等待查询运行.

另一种选择是将查询结果转储到 table 中,并使用代理作业将流程安排到每天两次 运行。将报告指向此 table,然后你就可以开始了。

这样做的好处是用户可以更快地获得报告结果(除非他们 运行 报告是在刷新作业发生的时候),缺点是查询将每天执行两次,无论是是否需要。