多个数据流任务与具有多个源-目的地的一个数据流任务
Multiple data flow tasks vs one data flow task with many source-destinations
我正在构建一个简单的 SSIS 包,它截断 10 个表并再次填充它们。源数据在一台服务器上,目标是 SQL 服务器。数据通过另一个执行 SSIS 包的服务器,因为我没有从目标 SQL 服务器执行 SSIS 包的权限。
问题:我应该创建 10 个单独的数据流任务还是一个包含 10 个 source/destinations 的数据流任务?
我的理由是,由于数据通过执行 SSIS 包的服务器,因此它可能会使用该服务器上的所有内存,因为所有数据都是同时转换的...
创建 11 个包。
- 10 实施 t运行 分类和重新加载模式。这是一个 replicate-o-matic Biml Pattern
- 1 实施协调器模式
如果真的是t运行cate and reload,那就是extract and load,不需要转换。数据缓冲区(在内存中)中的数据量对于整个 运行 将大致恒定,但它不会分配足够的数据来保存所有源数据。它将从源中批量提取数据,执行指定的任何转换 - none 在您的情况下,然后将其推送到目的地。如果有更多数据,相同分配的内存将在后续批次中重复使用。
然后,您的编排器模式允许您以合理的方式构建执行。如果您关心的是最小化内存,那么您可能需要序列执行。
您可以 运行 按顺序排列所有包 - 这将导致内存使用稳定但总持续时间更长。
您可以 运行 所有包并行 - 总持续时间更短但内存使用量更高。
我个人的喜好是并行和顺序结合使用。我有 3 个、5 个、任何将 运行 并行的 foreach 循环容器。他们列举了我将事先分段的要完成的工作(通常,有几个大表,它们可能是处理流的唯一成员,然后许多小表可能在另一个中)。这样做的目的是尝试让所有并行运算符的总处理量大致相同。
我正在构建一个简单的 SSIS 包,它截断 10 个表并再次填充它们。源数据在一台服务器上,目标是 SQL 服务器。数据通过另一个执行 SSIS 包的服务器,因为我没有从目标 SQL 服务器执行 SSIS 包的权限。
问题:我应该创建 10 个单独的数据流任务还是一个包含 10 个 source/destinations 的数据流任务?
我的理由是,由于数据通过执行 SSIS 包的服务器,因此它可能会使用该服务器上的所有内存,因为所有数据都是同时转换的...
创建 11 个包。
- 10 实施 t运行 分类和重新加载模式。这是一个 replicate-o-matic Biml Pattern
- 1 实施协调器模式
如果真的是t运行cate and reload,那就是extract and load,不需要转换。数据缓冲区(在内存中)中的数据量对于整个 运行 将大致恒定,但它不会分配足够的数据来保存所有源数据。它将从源中批量提取数据,执行指定的任何转换 - none 在您的情况下,然后将其推送到目的地。如果有更多数据,相同分配的内存将在后续批次中重复使用。
然后,您的编排器模式允许您以合理的方式构建执行。如果您关心的是最小化内存,那么您可能需要序列执行。
您可以 运行 按顺序排列所有包 - 这将导致内存使用稳定但总持续时间更长。
您可以 运行 所有包并行 - 总持续时间更短但内存使用量更高。
我个人的喜好是并行和顺序结合使用。我有 3 个、5 个、任何将 运行 并行的 foreach 循环容器。他们列举了我将事先分段的要完成的工作(通常,有几个大表,它们可能是处理流的唯一成员,然后许多小表可能在另一个中)。这样做的目的是尝试让所有并行运算符的总处理量大致相同。