我有一个复杂的报告,它从多个表中获取记录。
我在许多地方看到,SSRS不允许从单个存储过程返回多个数据表,因此我创建了一个存储过程,并为从共享数据集中过滤的报表创建了6个dataset,但当我运行以下查询时,它会显示我的过程执行了6次,这可能会导致性能问题。
SELECT TOP 100 *,Itempath,parameters,
TimeDataRetrieval + TimeProcessing + TimeRendering as [total time],
TimeDataRetrieval, TimeProcessing, TimeRendering,
ByteCount, [RowCount],Source, AdditionalInfo
FROM ExecutionLog3 where ItemPath like '%GetServiceCalls%'
ORDER BY Timestart DESC
为了消除这个问题,我删除了所有dataset过滤器,并在tablix上应用了过滤器。在那之后,我看到那个程序只被调用了一次。但这并不会对演出产生太大影响。
现在,我面临的问题是,我如何才能确切地提高SSRS报告的性能。
注意:我的查询在13秒内执行,报告需要20分钟才能执行.
请帮我解决这个问题。
致以敬意,
达瓦尔
发布于 2015-06-02 13:28:33
我总是发现SSRS在大型表上筛选要花费很长时间,而且任何文本通配符的性能都会更差。
我的建议是做所有的“粗活”,除了SQL中的排序,然后在SSRS中做任何排序。
您的部分问题可能是您有一个大型的数据集,并且正在执行通配符搜索,当您在like语句的开头有通配符时,这些通配符并不能很好地使用索引(例如,‘%.)。
https://stackoverflow.com/questions/30601325
复制相似问题