报告需要很长时间才能加载 - 超时

时间:2014-07-03 08:43:20

标签: sql sql-server

对于部署在报表服务器上的SQL报表(rdls),我们在Internet Explorer上浏览,例如

我们的结果是从SQL服务器返回大量记录,返回的数据大小为62 Mbs 所以加载到报告上需要很长时间才会超时。

我们可以尝试使用任何分页或缓存技巧,以便报表一次只加载前几页数据,而其余数据缓存在某处吗?我们也不想使用参数来限制首次加载时的数据(业务需求)

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以使用带有一些ID的Top运算符为您订购数据。例如, Top(10)选择前10行。

做类似的事情:

Select Top (10) a, b...
from ...
where Id > i * 10

因此,下一次调用将增加i以获得接下来的10行。

答案 1 :(得分:0)

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

现在,您可以使用begin和end来分页要从数据库中获取的数据量,并将其分成块。