Sql server 在调度服务器上的ssis包中使用waitfor delay任务的含义

Sql server 在调度服务器上的ssis包中使用waitfor delay任务的含义,sql-server,ssis,task,delay,Sql Server,Ssis,Task,Delay,关于在ssis包上的执行sql任务中使用WaitForDelay的含义,我有一个问题。事情是这样的:我有源数据表,由于数据量和链接的服务器连接,它们每晚都会被删除和创建。在包利用这些数据运行之前,我有一个容器循环。在这个容器中,我有一个执行sql任务,它检查是否存在源表,如果不存在,它会通过电子邮件任务向我发送电子邮件,然后转到一个执行sql任务,该任务在再次循环和检查源表之前有30分钟的等待延迟。现在我认为我对这个设计很在行,但我的团队中的其他人很担心,因为他们对这个等待任务了解不够。他们担心

关于在ssis包上的执行sql任务中使用WaitForDelay的含义,我有一个问题。事情是这样的:我有源数据表,由于数据量和链接的服务器连接,它们每晚都会被删除和创建。在包利用这些数据运行之前,我有一个容器循环。在这个容器中,我有一个执行sql任务,它检查是否存在源表,如果不存在,它会通过电子邮件任务向我发送电子邮件,然后转到一个执行sql任务,该任务在再次循环和检查源表之前有30分钟的等待延迟。现在我认为我对这个设计很在行,但我的团队中的其他人很担心,因为他们对这个等待任务了解不够。他们担心我的软件包可能会干扰他们的软件包,或者减慢服务器速度,使用资源等等


从我的谷歌搜索中,我没有看到任何看起来会引起问题的东西。这里有人能谈谈使用此任务的含义吗

SQL WAITFOR非常适合这一要求——我在生产SSIS包中使用它已有多年,没有任何问题。您可以通过SSMS Activity monitor对其进行监控,查看它是否不消耗任何资源。

如果找不到表,您将收到一封电子邮件,告诉您找不到表,然后包旋转30分钟。假设你会在下一次检查和电子邮件周期之前进入计算机,登录并创建丢失的表吗?不,一个明显的警告是,它永远不会结束,直到表存在,我不一定要登录来修复。。。我的另一个想法是添加一个循环计数器并停止任务。不确定ssis如何处理类似的事情,但肯定是可能的。我很好奇,当这个软件包基本上处于闲置状态时,它使用了多少资源。除了使用其他人可能使用的spid,但是任务使用1个线程,那么在循环时它会锁定其他线程有多现实?或者说这会拖慢其他工作的速度有多现实?会拖慢其他工作吗,不。自行测试,打开探查器并启动等待N个时间单位的SSIS包。但是,SSI不是用来旋转的。有一次,我被警告不要让包作为内存泄漏进行轮询,诸如此类的引用。相反,如果是我,我会有一个在晚上8点启动的SQL代理,它做的第一件事就是检查目标数据库是否有效。如果不是,它就失败了。失败时,作业将在30分钟后重试,最多重试N次。成功后,下一步是正确启动SSIS包。