我有一个 SSIS 包,它使用 ODBC 源 -> OLE DB 目标提取数据。非常简单的包,里面只有一些工具。通常,该包需要约 45 分钟才能复制 1400 万行。在作业日志中,它似乎卡在验证上,这意味着它甚至没有开始执行,因此理论上连接超时在这里没有帮助。
是否有我可以构建的通用 SSIS 包超时选项?
最简单的方法是创建第二个监视作业来监视/检查此主要作业。
在此监控作业中,您可以将计划运行日期/时间设置为在您预期主要作业完成后 XXX 分钟的时间开始/运行(并提供一些额外的分钟以确保您预期的最长运行时间)完成)。
所以你的主要工作从凌晨 1 点开始,你预计它会在上午 130 点完成。我会将此监视器/终止作业设置为运行,例如上午 230 点(给您额外的一个小时,以防万一它运行时间更长)。
然后您只需让监视器作业运行此脚本:
EXEC msdb.dbo.sp_stop_job @job_name = 'JobNameToKill'
您也可以添加此内容,这样您就知道该工作已被终止,并且您将收到一封电子邮件:
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'EmailAddress',
@subject = 'EmailSubject',
@body = 'EmailBody',
@importance = 'NORMAL',
@body_format = 'HTML';