我有10份报告和250个客户。所有报告都是由我的客户运行的,每个报告都采用参数。根据参数的不同,同一报表连接到不同的数据库并得到结果。我知道对于不同的参数,缓存不是一种选择。但我不想在白天对实时数据运行这些报告。有没有什么我可以做的(快照,订阅),可以在夜间运行,或者发送这些报告,或者保存一个可以在接下来的24小时内使用的快照?
提前谢谢。
发布于 2011-10-21 11:51:22
正如M Fredrickson建议的那样,订阅可能在这里起作用,这取决于要发送的不同报告的数量。
另一种方法是将数据查询合并到单个共享数据源。共享数据源可以启用缓存,并且有多个选项可用于刷新该缓存,例如在首次访问时或按定时计划刷新。参见MSDN for more details。
缓存数据源面临的挑战是,如何通过将所有参数移动到其他位置(通常是报表中的数据集筛选器)或单个数据元素的筛选器(如您的表),来从实际数据查询中删除所有参数。
我使用这种方法在夜间刷新10分钟的查询,然后在不到30秒的时间内返回全天的报告,并使用许多不同的可能参数过滤数据集。
您还可以通过在报表中使用多个数据集(有些缓存,有些不缓存),将这种方法与其他方法混合使用。
发布于 2011-10-21 01:40:18
我建议走订阅的路线。While you could do some fancy hack to get multiple snapshots of a single report,使用订阅会更干净。
但是,由于您有250个客户和10个不同的报表,我怀疑您是否愿意在报表管理器中配置和管理2,500个不同的订阅……因此,我建议您为每个报告执行create a data driven subscription。
https://stackoverflow.com/questions/7839689
复制相似问题