s-s-rS 13 (SQL 2016) 报告缓存问题
Posted
技术标签:
【中文标题】s-s-rS 13 (SQL 2016) 报告缓存问题【英文标题】:s-s-rS 13 (SQL 2016) Report Caching Question 【发布时间】:2021-12-22 23:48:18 【问题描述】:我们有一个报告需要 AN AGE 在白天运行,主要是因为用户需要选择几个参数作为他们在某个日期范围内执行的一部分。
我希望我可以使用默认日期范围缓存报告并为子参数选项选择全部,以便他们可以根据缓存的数据集运行进一步的过滤器报告。
但是,在 MS 网站上阅读此内容时,听起来好像不起作用:
导致缓存过期的条件
缓存报表在响应以下事件时失效:报表定义已修改、报表参数已修改、数据源凭据更改或报表执行选项更改。如果您删除存储在缓存中的报告,缓存版本也会被删除。 如果由于某种原因无法从缓存实例呈现报表(例如,如果用户指定的参数值与用于生成缓存报表的参数值不同),则报表服务器会重新运行报表。*
阅读本文后,我相信,由于他们不会使用每个变量的 ALL 选项,因此报告将重新运行,而不是使用缓存。
这是对的吗?有没有办法解决这个问题?
谢谢
【问题讨论】:
【参考方案1】:是的,报表的数据查询是针对参数运行的,当参数更改时,它会重新运行查询,因为它不知道新参数是针对它已经提取的数据的子集。
如果您的报告是针对历史数据(即上周、上个月)并且不受全天数据变化的影响,您可以考虑将报告数据以批处理的方式在一夜之间提取到另一个仅保存数据的数据库中报告的数据,并使用适当的索引等进行优化。然后您的报表就可以使用新的报表数据库,而且速度应该更快。
【讨论】:
以上是关于s-s-rS 13 (SQL 2016) 报告缓存问题的主要内容,如果未能解决你的问题,请参考以下文章