我面临一个奇怪的问题,如果有人可以帮助我,我将感到很高兴。
在我们公司中,我们使用SSRS将每日报告发送给同一管理层。
我们有3种报告类型,其中3种报告使用不同的参数执行了更多次。第一次执行2次,第二次执行3次,第三次执行更重,下降6次。
所有3个查询都使用CTE表具有相同的原理。这些查询是在SSMS中开发的,并通过Visual Studio添加到报表中。
从这里开始疯狂。
在第一版中,我们有相同的时间表。他们中的两个被执行而没有错误,并且电子邮件已交付。
第三份报告因错误而掉线
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: 数据集“ ZZZ”的查询执行失败。 -> System.Data.SqlClient.SqlException:无效的对象名称 'tempdb.dbo.TEMP_ID_XXXX'。
当我们禁用其他2个报告并手动执行第3个报告时,报告成功完成。
但这只是几天,几天之内,所有报告都已成功交付。
然后,我们决定拆分这3个报告的时间表。因此,我们创建了2个工作步骤。一个用于前两个报告,一个用于第三次报告。
前两天,我们按需提供了报告,但是从昨天开始,我们面临着同样的问题。
我看到作业步骤之间的时差为数毫秒,尽管第一步的报告大约需要15秒才能完成。
我检查了执行日志,发现对于第一个报告的一个参数版本的执行,它需要:
12990毫秒。
作为作业执行时为23845毫秒(与其他5个参数并行执行)
与所有其他报告并行执行时为35761毫秒(共11个)失败
我认为,如果在两个报告步骤之间添加并执行额外的步骤将使工作暂停1分钟,那将解决我的问题。
有人遇到任何类似的问题吗?
任何帮助将不胜感激!