Sorting sas中更快的排序选项?

Sorting sas中更快的排序选项?,sorting,sas,Sorting,Sas,我有一个1.2crore行的大型数据集,使用通常的SAS proc sort进行排序大约需要30分钟。在sas中是否有更快的算法/选项? Kuber没有关于如何使用排序数据集以及数据集的字段和长度的更多详细信息,以下是一些您可以尝试的方法: 使用过程排序中的tagsort选项。当数据集很宽时,这很有用 创建索引而不是排序。如果你只是想做一些由小组处理,那么这将是更快,也将工作 LI>如果要进行合并,请考虑使用SQL连接(它可能不需要排序尽可能多的数据)或哈希表(可以用于合并而不需要排序数据)

我有一个1.2crore行的大型数据集,使用通常的SAS proc sort进行排序大约需要30分钟。在sas中是否有更快的算法/选项?
Kuber

没有关于如何使用排序数据集以及数据集的字段和长度的更多详细信息,以下是一些您可以尝试的方法:

  • 使用过程排序中的
    tagsort
    选项。当数据集很宽时,这很有用
  • 创建索引而不是排序。如果你只是想做一些由小组处理,那么这将是更快,也将工作
  • <> LI>如果要进行合并,请考虑使用SQL连接(它可能不需要排序尽可能多的数据)或哈希表(可以用于合并而不需要排序数据)。李>
  • 压缩输出数据集(如果尚未压缩)和/或输入数据集。这将减少IO
但要回答您的问题,sas中没有比
proc sort
更快的排序过程。根据以下PDF:SAS®排序例程的顺序为O(NlogN),如下所示: 比较排序的速度很快

如果您在已获得syncsort许可的站点上工作,则这可以加快速度,但默认情况下通常会启用此功能


没有关于如何使用已排序数据集以及数据集的字段和长度的更多详细信息,您可以尝试以下几点:

  • 使用过程排序中的
    tagsort
    选项。当数据集很宽时,这很有用
  • 创建索引而不是排序。如果你只是想做一些由小组处理,那么这将是更快,也将工作
  • <> LI>如果要进行合并,请考虑使用SQL连接(它可能不需要排序尽可能多的数据)或哈希表(可以用于合并而不需要排序数据)。李>
  • 压缩输出数据集(如果尚未压缩)和/或输入数据集。这将减少IO
但要回答您的问题,sas中没有比
proc sort
更快的排序过程。根据以下PDF:SAS®排序例程的顺序为O(NlogN),如下所示: 比较排序的速度很快

如果您在已获得syncsort许可的站点上工作,则这可以加快速度,但默认情况下通常会启用此功能


如果需要对数据集进行排序的原因是要将其与另一个数据集合并,则可以考虑使用对象进行合并/查找。然后,您可能不需要对其进行排序。

如果您需要对数据集进行排序的原因是将其与另一个数据集合并,那么您可以考虑使用对象进行合并/查找。然后,您可能不需要对其进行排序。

Hi Rob,PROC SQL会在内部进行排序,除非进行内部联接,并且联接到的两个表中的一个表足够小,可以放入memroy中—在这种情况下,它使用哈希联接(因此不进行排序)或使用索引联接。添加“_METHOD”作为PROC-SQL选项,并查看其排序数据是否在后台。说得好。我猜您可以不必对表进行排序,而只需要将表连接到需要排序的表。那么这可能取决于情况?无论哪种方式,我都更新了我的答案以反映您的评论。嗨,Rob,PROC SQL在内部进行排序,但在进行内部联接时除外,并且所联接的两个表中的一个表小到足以容纳memroy—在这种情况下,它使用哈希联接(因此不进行排序)或使用索引联接时。添加“_METHOD”作为PROC-SQL选项,并查看其排序数据是否在后台。说得好。我猜您可以不必对表进行排序,而只需要将表连接到需要排序的表。那么这可能取决于情况?不管怎样,我已经更新了我的答案以反映你的评论。