首页 > 解决方案 > 更正 SSIS 以随机顺序执行任务

问题描述

这是 8 年前的转贴,因为那里提供的解决方案对我不起作用,也许现在我和其他有这个问题但也无法解决的人有更多的选择。

我有六个数据流任务,如以下屏幕截图所示: SSIS 截图

每次我执行它们时,它们都会以不同的顺序执行,甚至第一个也会执行两次。我重新创建了任务,希望是 SSIS 按创建顺序执行它们。

尽管有优先约束,每次我执行包时它们都会以随机顺序运行,所以我决定重新创建整个包。也失败了。

感觉就像微软在惹我生气,因为我找不到其他解释。

如果我的帖子没有被选为冗余,那么提供的任何帮助对我来说都是一种解脱。

/编辑以添加信息/

我真正的问题是 SSIS 没有按定义的顺序插入数据。它只是随意执行数据插入。因为我确实需要以指定的顺序本地存储数据。我以前做过,只是不明白为什么这个 tiem 不同。但是,我可以运行 ORDER BY 来获取我想要的数据,但访问数据的人不是我,希望提取和打印数据的人注意到这一点。

然而,最大的问题是 SSIS 执行两次随机任务,因为我不能出于任何原因复制数据,因为它稍后也将用于汇总。(我怀疑这与随机顺序执行有关,因为发布原始问题的人与我有完全相同的问题)。

注意到这些问题的真正方法不是查看 SSIS 进程,而是查看存储在 DB 中的数据。抱歉,如果我不清楚我的问题。

标签: visual-studiossisoperator-precedence

解决方案


SSIS 日志不会按任务运行的顺序向您显示任务。实际上,在您上面的屏幕截图中,它们看起来像是按字母顺序排列的。

仅仅因为在您的执行日志中Abril位于上方Enero并不意味着AbrilEnero运行后运行。

基于以下评论的附录:

您误以为如果您按特定顺序将数据插入到数据库中,那么当您在未指定 ORDER BY 的情况下选择该数据时,您将按照插入的顺序获取数据。 事实证明并非如此。 以特定顺序从数据库中获取数据的唯一保证方法是在 SELECT 时使用 ORDER BY 子句。

让我非常清楚这一点。当您说“我从 3 月开始列出我的数据而不是从 1 月份开始列出我的数据,这意味着它首先被插入”,你错了。

至于为什么您的一月份数据似乎要插入两次,我们需要查看所有工作部分的详细信息:原始源数据、插入前的目标数据、插入后的目标数据以及执行插入。如果没有足够的信息来自己重现问题,我们无法帮助您了解为什么它会在您的包裹中发生。


推荐阅读