【问题标题】:Data driven SSRS subscription delayed execution on the first run数据驱动的 SSRS 订阅在首次运行时延迟执行
【发布时间】:2016-05-17 10:09:44
【问题描述】:

我对 SSRS 上的一个数据驱动订阅有一个奇怪的问题。 订阅是一种定时订阅,可生成发票 (pdf/excel) 并由存储过程触发。

我们面临的问题是,无论生成多少发票,第一次运行总是需要 30-60 分钟。第一次运行完成后,后续运行将在一分钟内完成。

同一报告的第二个版本是手动运行的,并且运行良好(排除了数据提取位的任何延迟)。

我在这里查看了其他一些问题,但这无助于确定问题:

SQL Reporting services: First call is very slow

SSRS report subscription not working sometime

【问题讨论】:

  • 这里似乎没有问题。或者一个问题。它的工作,对吧?
  • 第一次执行完成后它运行良好,但第一次运行需要将近一个小时,这对大多数用户来说非常令人沮丧。首次运行是指一天中第一次触发订阅,无论一天中的什么时间。
  • 初次运行和后续运行有什么区别?报告正在处理的数据量是否存在巨大差异?如果没有更多信息,我不确定您是否会从任何人那里得到答案。您可能需要对初始运行期间实际发生的情况进行更详细的分析。有什么方法可以记录存储过程中发生的事情?也许运行跟踪以查看当时发生了什么?您的 DBA(如果有的话)应该能够提供帮助。
  • 很遗憾没有 DBA。初始运行和后续运行之间没有区别。订阅由另一个包含发票列表的报告触发。在第一次运行完成一个小时后,如果我为相同的发票运行订阅,则在不到一分钟的时间内生成所有在第一次运行中花费大约一个小时的发票。在它第一次运行后,在白天的任何时间运行它都不需要时间。每次触发时都没有数据缓存拉取数据。

标签: reporting-services


【解决方案1】:

在不了解查询、数据、数据库设置、其他流程等的情况下;很难确定。但是,如果我不得不猜测,根据您的描述,听起来查询计划缓存丢失并在当天的第一次运行时重建。如果没有计划,查询的效率可能会降低。每次后续运行都将使用第一次运行时创建的计划,因此运行速度会更快。有多种原因可能会导致查询计划从缓存中擦除。重新编译,其他查询使用太多内存,没有足够的系统内存开始等等。

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多