我注意到当我运行一个只包含执行时间字段的报表时,只要我有一个来自sql的大型嵌入数据集,报表就会花费很长时间加载。为什么是这样?该报告甚至没有从数据集中查找任何数据,那么它在做什么呢?加载时间明显与数据集中的数据量成比例。有没有更好的方法来创建数据集? SQL Report Builder似乎很不可用,因为我的一些数据集包含数百万条记录。
答案 0 :(得分:3)
报告生成涉及三个阶段:
这些阶段按顺序运行,因此在数据检索阶段,Reporting Services不知道数据将如何在报告中使用,因此它将执行报告中所有数据集的查询。然后,处理阶段获取数据集查询的结果,并将报表结构(例如表和分组)应用于数据。
这就是为什么报表正在执行数据集查询,即使报表只包含执行时间字段,也是确保数据集仅返回报表所需数据的重要原因。最大限度地减少数据检索对于良好的报告性能非常重要。
答案 1 :(得分:0)
您确定报告中没有任何Tablix吗? Tablix具有数据集属性,例如,如果运行将该属性设置为dataset1的报表,SSRS将对dataset1执行查询