SSRS 查询分页

SSRS Query paging

我正在从一个非常大的 table 创建报告。我创建了一个非常简单的报告,其中只有一个 table。 table 似乎允许分页,但每个页面加载都需要很长时间,以至于它似乎是在拉动整个 table,然后在本地进行分页。

我想我可能必须自己将分页添加到查询中,但这不起作用,因为页面变量只能在页眉或页脚中使用

="SELECT * FROM MyTable OFFSET " & =Globals!PageNumber & " * 20 LIMIT 20"

我以前没有使用过 SSRS,所以我不确定是否有明显的遗漏。

任何有关如何正确执行此操作的帮助将不胜感激。

SSRS 中的全局 PageNumber 是在呈现报告后 生成的。这就是您不能在查询中使用它的原因。

不清楚您所说的分页到底是什么意思。一旦 table 超过页面大小,SSRS 会自动为报告创建页面。如果您只想查询 table 的一小部分,然后单击按钮获取下一块,没有比这更容易获得的了。

但是,您可以在查询中使用 ROW_NUMBER 函数并将其过滤到报告中的特定范围。但是您必须在 运行 报告之前指定 parameters/filters 的值,因为它使用这些值来处理数据集,然后继续呈现报告。

如果您使用任何与分页相关的表达式,SSRS 必须在显示第一页之前检索所有数据。

例如,如果您尝试在页脚中执行 "Page 1 of X",SSRS 必须先计算出存在多少页(通过检索和预呈现所有页面),然后才能显示第 1 页。

此外,如果您不需要所有列,请不要使用 Select *。这将强制 SSRS 将每一列加载到其缓存中,即使它们并未全部使用。您可以减少数据检索执行时间。

最后,如果您有权访问 SSRS 报告数据库,则可以查看报告的执行统计信息,了解性能问题发生在何处。 https://msdn.microsoft.com/en-us/library/ms159110.aspx