Sql 报告加载时间过长-超时

Sql 报告加载时间过长-超时,sql,sql-server,Sql,Sql Server,对于部署在报表服务器上的SQL报表RDL,我们可以在Internet Explorer上浏览它 我们得到的结果是从SQL server返回大量记录,返回的数据大小为62 Mbs 因此,加载到报表上需要很长时间,而且会超时 我们是否可以尝试任何分页或缓存技巧,以便报表一次只加载前几页数据,而其余数据则缓存在某个位置?我们也不希望使用参数来限制首次加载业务需求时的数据 有什么建议吗?您可以使用带有某些ID的Top运算符来排序数据。例如,前10行选择前10行 做一些类似于: Select Top (1

对于部署在报表服务器上的SQL报表RDL,我们可以在Internet Explorer上浏览它

我们得到的结果是从SQL server返回大量记录,返回的数据大小为62 Mbs 因此,加载到报表上需要很长时间,而且会超时

我们是否可以尝试任何分页或缓存技巧,以便报表一次只加载前几页数据,而其余数据则缓存在某个位置?我们也不希望使用参数来限制首次加载业务需求时的数据


有什么建议吗?

您可以使用带有某些ID的Top运算符来排序数据。例如,前10行选择前10行

做一些类似于:

Select Top (10) a, b...
from ...
where Id > i * 10
因此,下一个调用将增加i以获得接下来的10行

DECLARE @Begin INT = 100
DECLARE @End INT = 200

SELECT rp.RN, rp.Id, rp.SomeOtherColumn FROM
(
    SELECT 
        rp.Id, 
        rp.SomeOtherColumn,
        ROW_NUMBER() OVER (ORDER BY rp.Id) RN
    FROM MyReportTable rp
) rp
WHERE rp.RN >= @Begin AND rp.RN < @End

现在,您可以使用“开始”和“结束”来分页希望从数据库中获取的数据量,并将其分成若干块。

您在谈论哪个报告?是否有任何[…]技巧[…]使报告只加载前几页=>对不起,我的第一行被截断了。我将编辑question@DrCopyPaste-也许措辞不好。我猜他们希望看到未过滤数据的第一页或其他内容。不,整个数据集在生成报告之前加载。您可以做的是手动分页。添加一个默认为1的页面报告参数,并在查询中使用它。在报告上添加一个操作,该操作以Page=Page+1的方式打开。