【发布时间】:2016-11-15 03:15:54
【问题描述】:
我正在尝试从一个高度非规范化的表(超过 500 列)变为多个(20 多个表):所有较小的表都具有与巨大的非规范化表完全相同的列名。是否有一种自动/快速的方法可以通过两次转换将数据从该表迁移到多个表?基本上,我只是想把一张大桌子分解成更小的桌子。我可以使用一个键将它们全部链接起来。提前谢谢!
【问题讨论】:
标签: sql-server ssis sql-server-2012 ssis-2012
我正在尝试从一个高度非规范化的表(超过 500 列)变为多个(20 多个表):所有较小的表都具有与巨大的非规范化表完全相同的列名。是否有一种自动/快速的方法可以通过两次转换将数据从该表迁移到多个表?基本上,我只是想把一张大桌子分解成更小的桌子。我可以使用一个键将它们全部链接起来。提前谢谢!
【问题讨论】:
标签: sql-server ssis sql-server-2012 ssis-2012
您得到的最接近的是多播转换,它以与源相同的格式复制数据。但是,您不会损失效率和性能,因为您将只使用您需要的列子集而不使用其余列。您会损失一些性能,因为多播是一种完全阻塞的转换,这意味着您必须等待整个数据在分发之前到达。我使用单词分布是因为如果您不重叠列,则数据不会相乘。
【讨论】:
不,没有什么是自动的。不过,您可以通过两次转换来做到这一点。第一个是源表,第二个是脚本目标,它查看进入的每条记录并决定将其发送到哪个目标表,然后对该表执行插入操作。
【讨论】: