首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行SSRS报告需要几分钟时间

运行SSRS报告需要几分钟时间
EN

Stack Overflow用户
提问于 2013-02-20 23:48:18
回答 1查看 2K关注 0票数 1

我有一个非常简单的SSRS报告,它只需要不到1秒就可以运行存储过程。当我将报告上传到本地服务器时,它工作得很好。但是,在远程服务器(SQL server 2012)上,运行报告需要5-7分钟。我在远程服务器上的其他报告工作正常。有人能帮我吗?提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-21 21:53:21

应使用SQL事件探查器或ReportServer DB检查哪个进程较慢。您可以使用以下SQL进行检查:

代码语言:javascript
复制
USE ReportServer
SELECT ReportPath,
       RequestType,
       Format,
       ReportAction,
       TimeDataRetrieval,
       TimeProcessing,
       TimeRendering,
       DATEDIFF(S, TimeStart, TimeEnd) AS TotalSeconds
FROM ExecutionLog2

其中TimeDataRetrieval是存储过程执行的时间+向ReportServer发送时间,TimeProcessing是报表端用于分组、排序等的时间,TimeRendering是用于呈现的时间。

然后,当您知道执行缓慢的原因时,您可以考虑修复的方法(修复存储过程、添加索引、更改报告结构等)。

我遇到过这样的问题,这会导致参数嗅探(about parameters sniffing),为了防止这种情况,你不应该在查询中使用输入参数,如下所示:

代码语言:javascript
复制
CREATE PROCEDURE [dbo].[usp_MySP] @InputValue INT
AS
BEGIN
    DECLARE @SomeValue INT;
    SET @SomeValue = @InputValue;

    SELECT SomeColumn 
    FROM SomeTable
    WHERE SomeColumn = @SomeValue
END
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14984096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档