首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提高Reporting Services速度的一般方法有哪些

提高Reporting Services速度的一般方法有哪些
EN

Stack Overflow用户
提问于 2009-02-06 19:33:09
回答 3查看 2K关注 0票数 0

虽然我理解这个问题相当模糊,因为我没有给大家提供我想要的细节,但我希望能对我的生成代码或报告本身进行一些一般性的改进,以加快它们的速度。我已经要求更多的硬件,但被拒绝了。

代码语言:javascript
复制
public Stream GenerateReport(string reportName, string format)
{
    if (reportName == null)
        throw new ArgumentNullException("reportName");

    reportExecutionService.LoadReport(reportName, null);

    string extension;
    string encoding;
    string mimeType;
    ReportExecution2005.Warning[] warnings;
    string[] streamIDs;

    byte[] results = reportExecutionService.Render(format, null, out extension, 
        out encoding, out mimeType, out warnings, out streamIDs);

    return new MemoryStream(results);
}

每个报告本身都需要6-10秒。我已经将瓶颈缩小到Reporting Services本身。我应该从哪里开始寻找消除潜在的速度瓶颈。注意:一些代码已经被删除,以保护无辜的人。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-02-06 19:40:49

尽管与您发布的代码没有直接关系,但在Reporting Services中编写报表时,您应该始终考虑以下几个常规增强功能:

  1. 预加载报告表,以便它们已经聚合了本应在报告中聚合的任何数据。例如,如果报表数据源汇总了数千行数据,并且需要将多个表联接在一起,则应创建一个将所有数据联接在一起的预聚集表,并且已经按照报表所需的粒度汇总了数据。
  2. 如果要将参数传递到数据源,则聚集的基础表应具有与搜索表的方式相对应的聚集索引。例如,如果报告只显示单个客户和给定事务日期范围的数据,那么聚集索引应该在客户上排序,事务date.
  3. Filtering数据应该出现在数据源查询中,而不是出现在报告本身中。这意味着,如果您对报表进行参数化,以便它过滤数据,那么应该将参数传递给数据库,以便它返回较小的数据集。不要返回大量数据,然后再对数据进行筛选。使用多值参数时很容易犯此错误,因为使用多值参数的开箱即用说明是在数据返回到Reporting Services之后对数据进行筛选。

我希望你已经在做上面的事情了,这不是一个相关的帖子。:)

票数 3
EN

Stack Overflow用户

发布于 2009-02-06 21:09:03

如果您已经将范围缩小到仅基于您的客户端代码的Reporting Services,我将查看检索您的数据的查询/SP。在我那个时代,我遇到过一些看起来相当清白的令人讨厌的问题。

票数 0
EN

Stack Overflow用户

发布于 2009-02-08 02:42:42

我刚做了几个非常难看的报告!我不得不在每个表包含几百万行的多个表上使用不可靠的连接条件。

最终创建了一个控制台应用程序,用于在前一天每晚进行收集。所有的逻辑都太繁重了,所以生成报告花费了太长的时间。现在速度不再是问题了。

这取决于报告的类型。这三份报告只需要昨天的数字。但正如奥斯汀所说,查询或其他什么通常是瓶颈。

另一件要记住的事情是,报告会在一段时间后“过期”(这是默认设置)。因此,如果您有一段时间没有使用该报告,则生成报告需要更长的时间。如果你在下一次之后再做一次,速度会更快。解决方法是转到internet explorer中的报告并单击属性,然后查看执行和历史记录(可以调整它们以改善报告的呈现)。但是,如果数据很关键,您可能会得到旧数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/521822

复制
相关文章

相似问题

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