我有一个SSIS包,其中我要收集3000万条记录进行排序。但这需要花费很多时间。有没有有效的方法来排序大量数据?与数据相比,驱动器中的内存较少....
答案 0 :(得分:0)
当记录集太大而无法放入内存时,排序会变得更加昂贵。
一种可能的解决方案是在输入构建时对输入进行排序。您可以通过向输入表添加索引来执行此操作,例如:
create clustered index IX_YourTable_SortColumn on YourTable(SortColumn)
如果无法对索引进行聚类,请使用include
将列添加到已排序的索引中:
create index IX_YourTable_SortColumn on YourTable(SortColumn)
include (col1, col2, col3)
这种方法使上一步更加昂贵,并消耗更多的磁盘空间,以便以正确的顺序将磁盘上的记录。你必须进行测试,看看权衡是否值得。
答案 1 :(得分:0)
在处理大型数据集时,SSIS中的排序速度非常慢。如果您需要在SSIS中进行排序,那么您应该考虑开发自己的排序组件,或者使用像NSort这样的第三方组件。