1,利用优先约束来并发处理数据,Data Flow Task 和 Data Flow Task 1 是并发执行的,而 Data Flow Task2 必须等到 Data Flow Task 和 Data Flow Task 1 执行完成之后,才开始执行。
2,如何从一个数据源表中并发处理数据,设计思路是
将一个表中的数据平均分成N份,各个数据流之间并发处理。
例如分为3份,可以使用%3,将数据分为三个子数据流并发处理数据。
select * from dbo.SourceTable where checksum(table_column)%3=0 select * from dbo.SourceTable where checksum(table_column)%3=1 select * from dbo.SourceTable where checksum(table_column)%3=2
3,最大的并发程度
由于Server在同一时间执行的Process的最大数量是CPU的个数,一个CPU在某一时刻,只有一个Process处于Running状态,所以最大并发度不要超过CPU的个数。
通过以下两个属性控制ETL执行的并发度
Package属性:MaxConcurrentExecutalbes Specifies the maximum numbr of executables to concurrently execute int the package
Data Flow Task的属性:EngineThreads 用以确定Data flow Task中各个转换组件同时运行的最大线程数,每一个转换组件最多使用一个Thread
作者:
悦光阴
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。