【问题标题】:SSIS convert source table into multiple data flow tasks that insert into same destination tableSSIS 将源表转换为插入到同一个目标表中的多个数据流任务
【发布时间】:2020-04-01 06:46:33
【问题描述】:

我必须将数据从 informix 数据库迁移到 sql-server 数据库。我正在使用 ssis 包进行该转换。 Informix 数据库有包含数百万条记录的表。因此,当我执行进行转换的 ssis 包时,需要数小时才能完成。

我读到了可以同时执行多个任务的并行方式,它以某种方式减少了我的时间。

但真正的挑战是,如果我必须迁移一个包含 5000 万条记录的表,那么只有一个数据流可以转换它。所以并行性对我没有帮助。

有什么方法可以将源表拆分为多个数据流任务,将数据插入到同一个目标表中。

任何想法/建议都会有所帮助。

感谢您的宝贵时间。

【问题讨论】:

    标签: ssis ssis-2012 ssis-2008


    【解决方案1】:

    您可以使用Balanced Data Distributor转换balanced-data-distributor-transformation 以提高您的打包速度,但此组件取决于您的服务器资源

    或者您可以将要迁移的表拆分为多个源组件,并为每个源创建一个在 where 子句(如日期)上具有增量负载的查询,然后使用 UNION ALL 组件来组合所有来源。

    【讨论】:

    • 平衡分配器是要走的路。请记住,目标表上的索引可能会导致争用。理想情况下不会有索引(堆),在这种情况下,请在目标上使用 TABLOCK 提示以实现最少的日志记录。
    • 在 +1 之前从未见过平衡数据分配器转换
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多