对于部署在报表服务器上的SQL报表(rdls),我们在Internet Explorer上浏览,例如
我们的结果是从SQL服务器返回大量记录,返回的数据大小为62 Mbs 所以加载到报告上需要很长时间才会超时。
我们可以尝试使用任何分页或缓存技巧,以便报表一次只加载前几页数据,而其余数据缓存在某处吗?我们也不想使用参数来限制首次加载时的数据(业务需求)
有什么建议吗?
答案 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来分页要从数据库中获取的数据量,并将其分成块。