none
如何并行处理SSIS中task RRS feed

  • 问题

  • 例如我要import 10个flat file 到10个不同的表,然后用一个Execute SQL Task 去处理,这个SQL Task会用到10个导入的表的数据,所以必须等所有10个表的导入任务都完成了才能 运行SQL Task

    目前我只能一个个的导入 这10个文件,然后运行 SQL Task

    怎么才能并行 执行这10个任务,当10个任务都完成了 再运行 下一个 SQL Task

     

    谢谢!

    2010年4月16日 1:40

全部回复

  • 我刚刚看到 每个Constraint连接线有个 LogicalAnd 属性,默认的属性值是 True

    这是不是说如果多个任务连接到一个任务,LogicalAnd 都是 True的话,只有在所有的任务都成功(如果连接线 是Success Constraint)后,才会执行下一个任务?

     

     

    2010年4月16日 1:53
  • 你做好10个任务后,看你是怎么连接的,如果是串联就是要一个一个执行完成,如果是并联就是可以同步执行。

    感觉就是小时候学习那个电路图,连接灯泡。。。

     


    family as water
    2010年4月16日 3:19
  • 不在 task 之间建立联系, 他们就是并行执行的
    2010年4月16日 4:36
  • 例如我要import 10个flat file 到10个不同的表,然后用一个Execute SQL Task 去处理,这个SQL Task会用到10个导入的表的数据,所以必须等所有10个表的导入任务都完成了才能 运行SQL Task

    目前我只能一个个的导入 这10个文件,然后运行 SQL Task

    怎么才能并行 执行这10个任务,当10个任务都完成了 再运行 下一个 SQL Task

     

    谢谢!


    也就是改用10个 Execute SQL Task 去处理就行了(Task之间不要建立关系)
    2010年4月16日 4:37
  • 谢谢各位回答,

    问题是如何连接下一个任务,而且要 满足上一步 并行任务全部成功 才执行这个任务,

     

    不过我想我找到 答案了。。

    2010年4月16日 4:41
  • 我不是那个意思,

     

    因为 Execute SQL Task 要用到 所有10个表的数据,所以必须所有10个表 都成功导入才能运行 这个 task

    2010年4月16日 5:03
  • Hi,

    从你的情况来看,你可以在Control Flow 中拖拽了10个 DataFlow (每个DataFlow中做 Source to Destination), 然后我们假设说汇总到一个 Script Task, 你这边的条件是要求10个 DataFlow都顺利完成以后,才能开始做 ScriptTask里的东西,是吗?

    如果这样的话,你可以鼠标右键单击任意一个 DataFlow输出的绿线,选择"Edit", 然后在 Multiple Constraints里勾选 "Logic AND, all constraints must evaluate to True". 其意义是执行 下一步骤(即 Script Task)的先决条件是,所有的先前步骤 DataFlow 都必须Success。

    Thanks.


    Microsoft Online Community Support Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    2010年4月20日 3:10
    版主