我已经创建了一个SSRS报告,用于使用存储过程检索55000条记录。当从存储的Proc执行时,它只需要3秒,但当从SSRS报告执行时,它需要一分钟以上。我该如何解决这个问题?
发布于 2008-12-22 20:39:41
额外的时间可能是因为除了查询数据之外,Reporting Services还会呈现报表。例如,如果您为报表返回了55,000行,而报表服务器必须对这些行进行分组、排序和/或筛选才能呈现报表,则这可能需要额外的时间。
我将查看一下在报告中对数据进行分组和筛选的方式,然后查看您的存储过程,看看是否可以将某些处理工作转移到SQL代码中,也许可以使用一些参数。尽量将返回到报表的行数减少到呈现报表所需的最小行数,最好避免在报表本身中进行分组和筛选。
发布于 2012-11-28 19:24:31
我有这样的问题,因为我的SP中的参数嗅探。在SQL Management Studio中,当我运行我的SP时,我用新的执行计划重新创建了它(并且调用非常快),但是我的报告使用了旧的坏计划(对于另一个参数序列),并且加载时间比在SQL MS.中要长得多。
发布于 2008-12-23 07:04:30
在ReportServerDB中,您将找到一个名为ExecutionLog的表。您必须查找报告的目录id,并检查最新的执行实例。这可以告诉你所用时间的分解--数据检索,处理,渲染等。
https://stackoverflow.com/questions/340344
复制相似问题