0

我面临一个奇怪的问题,如果有人可以帮助我,我会很高兴。

在我们公司,我们使用 SSRS 将每日报告发送给同一管理层。

我们有 3 种类型的报告,其中 3 种使用不同的参数执行更多次。第一次执行 2 次,第二次执行 3 次,第三次执行较重,下降 6 次。

使用 CTE 表的所有 3 个查询都具有相同的理念。在 SSMS 中开发并通过 Visual Studio 添加到报告中的查询。

从这里开始疯狂。

在第一版中,我们有相同的时间表。其中两个执行没有错误,并且电子邮件已发送。

第三次报告出现错误

Microsoft.ReportingServices.ReportProcessing.ReportProcessingException:数据集“ZZZ”的查询执行失败。---> System.Data.SqlClient.SqlException:无效的对象名称“tempdb.dbo.TEMP_ID_XXXX”。

当我们禁用其他 2 个报告并手动执行第 3 个报告时,报告成功完成。

但这只是几天,其他几天所有报告都成功交付。

然后我们决定拆分这 3 份报告的时间表。因此,我们创建了 2 个作业步骤。一个用于前两个报告,一个用于第三个报告。

前两天报告如我们所愿交付,但从昨天开始,我们面临同样的问题。

正如我所见,尽管第一步的报告大约需要 15 秒才能完成,但作业步骤有几毫秒的时间差。

我检查了执行日志,发现对于第三个报告的一个参数版本执行,它需要:

  • 通过门户手动执行时为 12990ms。

  • 作为作业执行时为 23845ms(与其他 5 个参数执行并行)

  • 35761ms 与所有其他报告并行执行(共 11 个) Failed

我认为如果在 2 个报告步骤之间添加和额外的步骤将暂停工作 1 分钟,可能会解决我的问题。

有没有人面临任何类似的问题?

任何帮助,将不胜感激!

4

0 回答 0