在SQL Server 2005中对非常大量的数据进行排序

时间:2012-03-21 11:40:18

标签: sql-server-2005 ssis

我有一个SSIS包,其中我要收集3000万条记录进行排序。但这需要花费很多时间。有没有有效的方法来排序大量数据?与数据相比,驱动器中的内存较少....

2 个答案:

答案 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这样的第三方组件。