我有一個SSIS包,我正在寫。在foreach循環中有一堆任務。它有一項任務必須先執行,但其餘任務可以按任意順序執行。SSIS中的流量控制有多強制?
比方說,我有「任務1」,這是必須在foreach循環內首先執行的1,然後其他任何事情都可以在任何時候執行。
比方說,括號()代表容器, - >代表優先約束。
這是正在完成,將導致整個包的有效控制流,同時完成TASK1第一?:
foreach(task1 -> SequenceContainer(task2 task3 task4))
或我將不得不指定
foreach ( task2 <- task1 -> task3
|
v
task4 )
此外,如果這DOES能夠工作嗎?我有這樣的習慣:繼續進行下一次失敗的迭代,是否會在模塊失敗時立即跳到下一次迭代,或者在進入下一次迭代之前嘗試完成所有事情?
非常感謝你。他們實際上訪問相同的表格,但僅限於插入。這很重要嗎? – Aserian
@Aserian如果您只是在執行插入操作,並且表中沒有任何複雜的事情發生,那麼您不應該遇到任何死鎖問題,但是多個併發插入操作可能會彼此阻塞,因爲索引需要更新以及表格。換句話說,它可能工作得很好,但是你可能看不到很多性能提升。除非我看到真正的改進,否則我可能會保持流量控制,因爲這樣就消除了必須考慮的問題。 –
謝謝!如果我決定忽略優先流程約束,並且單個程序包失敗,那麼這個foreach是否認爲它失敗了,而沒有完成其餘的任務?或者完成剩下的任務然後失敗?我想離開流量控制的原因是因爲我希望這個foreach能夠完成每一個包,不管是否失敗。還是有更簡單的方法來做到這一點? – Aserian