我使用存储过程作为SSRS报告中的数据集。即使存储过程运行得足够快,报表的处理时间也太长。对于相同的参数集,存储过程在4-7秒内给出结果,但SSRS报告大约需要4分钟才能弹出。来自存储过程的数据很大,但不是太大……它大约是13k。另外,我不能在存储过程中实现分组,所以我只能在报告本身中进行分组。然而,即使在删除分组之后,性能也只是变得更好(比如减少了40秒)。试图找出问题,并愿意讨论它,因为我有类似的问题与2-3报告。请多关照,任何帮助都将不胜感激。提前谢谢你。
发布于 2018-03-20 20:09:45
存储过程的编写方式可能会影响性能。如果您实现了下面的第二个过程,请从您的描述中选择。我相信它会提高性能。
慢速存储过程
CREATE PROC SLOW_PROC (@ID INT)
AS
BEGIN
SELECT
ID
,Name
FROM MyTable
WHERE ID =@ID
END快速存储过程
CREATE PROC FAST_PROC (@ID INT)
AS
BEGIN
DECLARE @NewID INT SET @NewID=@ID
SELECT
ID
,Name
FROM MyTable
WHERE ID =@NewID
END差异可能不是很大,但性能是。我希望这对你有所帮助
https://stackoverflow.com/questions/49383116
复制相似问题