动态过滤大型查询结果以在SSRS中呈现

时间:2014-06-05 06:22:05

标签: sql sql-server reporting-services statistics business-intelligence

我们有一个系统可以将数据记录到每分钟从现场设备捕获的SQL Server数据库中。此数据用于多种用途,其中一个用于通过SSRS绘制报告。

问题在于,如果数据量很大,当报表运行时间为3个月时,返回的数据量显然会导致报表呈现时间过长。

我一直在考虑根据所选的开始和结束时间段找到一种动态减少返回数据量的方法。从开始和结束周期之间的持续时间开始,我可以应用不同级别的过滤,以便在选择较大周期的情况下,进行更多过滤,而对于较小的周期较少或不进行过滤。

仍然需要能够产生更高的分辨率(如返回的更多数据点)报告以进行故障排除。

例如:

场景1: 用户正在执行为期3个月的报告。由于性能原因,查询返回的结果集会减少,而不会对用户想要查看的信息产生负面影响(图表仍然代表随时间变化的信息)。

场景2: 用户执行报告的时间为1小时,以便在对系统进行故障排除时查找现场设备的潜在问题指示。在这么短的时间内,不会应用过滤。

我的第一个想法是对数据的主键使用模运算(这是一个标识字段),根据开始日期和结束日期之间的差异选择除数。

例如,如果报告执行期的开始日期和结束日期之间的差异是5周,选择5的除数并将模型应用于PK,选择结果的位置等于零。

我希望得到关于这听起来是否是一种有效方法的反馈,或者是否有更好的方法来做到这一点。

感谢。

0 个答案:

没有答案