我使用存储过程作为SSRS报告中的数据集。即使存储过程运行得足够快,报告也需要很长时间才能处理。 对于同一组参数,存储过程在4-7秒内给出结果,但SSRS报告大约需要4分钟才能弹出。 来自存储过程的数据很大但不是太大......大约13k。此外,我无法在存储过程中实施分组,因此我在报告中进行分组。然而,即使在删除分组之后,性能也变得更好(比如减少40秒的时间)。 试图找出问题,并愿意讨论它,因为我有2-3个报告的类似问题。 请,任何帮助将不胜感激。 提前谢谢。
答案 0 :(得分:0)
写入存储过程的方式会影响性能。如果您执行下面的第二个过程,请从您的描述中我相信它会改善表现。
慢速存储过程
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
差异可能并不大,但性能却是如此。 我希望这有帮助