我们启动了几个月没有运行的测试 SSRS 服务。看来它决定发送所有错过计划的报告(即自启用以来未发送的任何报告)。
我们显然不希望出现这种情况。启动一段时间未活动的 SSRS 服务时,有什么好的流程可以阻止这种情况发生?是否有可以删除任何未来计划报告的 SQL 脚本?
答案1
显然这是一个老问题,但我最近遇到了这个问题。
在 SSRS 2017 上,SSRS 使用 SQL Agent Jobs 将条目添加到 ReportServer 数据库的 Event 表中。这些条目有一个 TimeEntered 列来指示它们的生成时间。
我添加了一个名为“SSRS_Clear_Catch_Up_Events”的 SQL 代理作业,它基本上会删除事件表中早于“今天”的所有条目。例如:
delete from Event where TimeEntered < cast( cast( GetDate( ) as int ) as DATETIME )
我将其安排在每晚 12:01 运行。