我有一个数据流任务,可将一堆数据从多个源移动到多个目的地。总共大约有50个。数据从一个数据库移动到另一个数据库,每个流中的行和列各不相同。
虽然我相信我理解数据流任务的DefaultBufferMaxRows和DefaultBufferSize背后的基本思想,因为它与每批行数和目标的最大插入提交大小相关,但我不清楚当存在多个不相关的源和目标流时会发生什么。
我想知道以下哪一项最有意义:
我相信我读过一些地方,最好将每个源和目的地都放在自己的数据流任务中,但我目前无法找到链接。
我能够在网上找到的大多数示例似乎总是从一个源到一个或多个目的地,或者只是一对一。
让我从基础开始吧。数据流任务是一个任务,组织从数据源到数据目的地的数据管道。它是 SSIS 中的一个独特任务,因为它在 SSIS 本身中运行数据操作,所有其他任务都调用外部系统对 SSIS 之外的数据执行某些操作。关于DefaultBufferMaxRows、DefaultBufferSize
之间的关系,因为它与每批行数和目标的最大插入提交大小相关。没有直接关系。DefaultBufferMaxRows和DefaultBufferSize是数据流管道的属性;管道批量处理行,这些属性控制处理批量大小。这些属性控制 RAM 消耗和数据流任务的性能。
另一方面,Rows per Batch和Maximum insert commit size是 Data Destination 的属性,即仅快速加载模式下的 OLE DB Destination ;它控制数据目标本身的性能。您可能有一个带有平面文件目标的数据流,其中没有每批的行数,但它肯定会有DefaultBufferMaxRows和DefaultBufferSize属性。
根据我的经验,典型用法:
关于包装设计:
作为底线,保持简单——每个 DFT 一对源-目标,并且仅在必要时才使用您的参数。
| 归档时间: |
|
| 查看次数: |
1213 次 |
| 最近记录: |