【问题标题】:SSRS Performance MysterySSRS 性能之谜
【发布时间】:2011-12-22 13:41:21
【问题描述】:

我有一个存储过程,它在 SSMS 中最多使用 2 个核心在 10 秒内返回大约 50000 条记录。使用存储过程的 SSRS 报告需要 20 分钟,并且会在整个时间内最大化 8 核服务器上的处理器。该报告相对简单(即没有图表、计算)。报告似乎不是问题,因为我将 50K 行写入临时表,报告可以在几秒钟内显示数据。我尝试了许多不同的想法来测试每次更改存储过程,但将原始代码保留在单独的窗口中以恢复。在对存储过程进行一次 Alter 之后,回到原始代码,报表和服务器利用率开始快速运行,可与单独存储过程的性能相媲美。现在一切都很好,但我想深入了解造成这种情况的原因,以防它再次发生。有什么想法吗?

【问题讨论】:

  • 表上的索引?过时的执行计划?统计数据更新了吗?你有 SqlProfiler 日志吗?这将在未来有所帮助..
  • 只是渲染还是渲染为PDF?
  • Dan - 只是将标准报告呈现到网络上。 Rene - 在故障排除期间我没有运行 SqlProfiler。我已经在本地查询上运行了它,但是我需要做些什么来记录 SSRS 数据库调用吗?我也没有深入研究 SSRS 执行日志,但如果其他故障排除不起作用,我会考虑它。如何检测过时的执行计划?
  • 您的 SSRS 服务器和数据库服务器是同一台机器吗?我问是因为我发现 SSRS 经常在处理大型数据集时表现不佳即使报表服务器与数据库位于不同的计算机上 - 这有助于将问题缩小到 SSRS,而不是相关查询。似乎微软更喜欢将 SSIS 用于大数据提取,而不是 SSRS。
  • 您的报告中是否包含任何深入链接?我们已经看到这些导致大量临时数据被填充到报表服务器的数据库中。

标签: performance sql-server-2008 reporting-services ssrs-2008


【解决方案1】:

当您正常执行存储过程时,我将从 SQL Profiler 跟踪开始,然后在 SSRS 调用它时从相同的 SP 开始。确保包含所涉及的执行计划,以便您可以查看它是否做出了一些错误的决定(尽管这似乎不太可能 - SQL Server 应该执行最佳 - 或至少一致的 - 计划,而不管查询的来源如何)。

我们曾经遇到过这样的情况,即 Business Objects 会无缘无故地执行存储过程数十次,并且偶尔会导致糟糕的性能,尽管我从未见过 SSRS 有同样的行为。不过,这可能是一个开始的地方。您还将看到执行开始/结束时间 - 这将清楚地表明是数据库层挂起,还是 SQL Server 在 10 秒内交回数据,然后是 SSRS 服务在某处阻塞。

【讨论】:

    【解决方案2】:

    加快 SSRS 报告速度的主要解决方案是缓存报告。如果这样做(例如,我在早上 7:30 预加载缓存)或缓存命中的报告,则会发现加载速度大幅提升。

    您可能还会发现每月重新启动 SSRS 应用程序域来解决您的问题。

    请注意,我每天都在专业地这样做,而不仅仅是在 SSRS 上写诗

    SSRS 中的缓存 http://msdn.microsoft.com/en-us/library/ms155927.aspx

    预加载缓存 http://msdn.microsoft.com/en-us/library/ms155876.aspx

    如果您不喜欢需要很长时间的初始报告并且您的数据是静态的,即每日总账等,这意味着数据在一天内相对静态,您可以延长缓存的使用寿命

    最后,您也可以选择让业务经理改为通过电子邮件订阅接收这些报告,这将向他们发送一份 Excel 时间点报告,他们可能会觉得更容易更系统化。

    您还可以在 SSRS 中使用参数,以便用户轻松解析并加快查询速度。在您希望参数化的过滤器列下的查询构建器类型 IN(@SSN) 中,您将在 BIDS GUI 左上角的数据源上方的参数文件夹中找到它。 [如果在 SSRS 中没有看到数据源部分,请按 CTRL+ALT+D。

    在此处查看几乎相同的问题:Performance Issuses with SSRS

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多