首页 文章

SSIS从异构源中对大数据进行排序 - 替代方案

提问于
浏览
0

我正在寻找在SSIS上排序约200万条记录的替代方案 .

在应用多个转换后,来自异构源(SQL,Oracle,DB2)的数据,有一个Union All来组合数据,然后需要按三个字段排序 .

这是因为在我们发送给外部供应商之前,数据需要按某些字段进行排序

这些是我已经尝试过的解决方案:

  • 缓冲区大小(100 MB)和最大行调整(50K行)

  • 在每个来源都应用排序(仅仅是为了我的想法!)

  • 将外部元数据属性设置为False(对于Sort Trans)

  • 试过脚本任务(C#排序)

这些都没有显着改善性能 .

还有其他选择吗?

更新:这是三个不同字段的字符串排序,属于三个不同的DB表(SQL,Oracle,DB2) . 在数据集合并之前,我无法排序 .

  • 尝试将输出加载到单个表并使用具有适当索引的Order by - 这会产生意外结果,因为SQL Order by的行为与Sort Transformation Here is the explanation不同

1 回答

  • 0

    使用 MERGE 转换而不是 UNION ALL

    不是首先使用 UNION ALL 组合数据集,然后对生成的大型组合数据集进行排序,而是首先对每个较小的集合进行排序,然后使用 MERGE 转换 . MERGE 转换的结果将已经排序 .

相关问题