2012-09-04 68 views

回答

3

沒有你如何使用排序後的數據集和哪些領域和長度更多細節讓你的數據集這裏的幾件事情,你可以嘗試:

  • 使用在PROC排序tagsort選項。當數據集很寬時,這很有用。
  • 創建排序的指標來代替。如果你只是想通過小組處理來做一些事情,那麼這將會更快,並且也會工作得很好。
  • 如果你是爲了做一個排序合併考慮使用SQL連接(這可能並不需要儘可能多的數據排序)或哈希表(可用於合併和不需要排序的數據)。
  • 壓縮輸出數據集(如果你沒有的話)和/或輸入數據集。這將減少IO。

但回答你的問題,沒有更快的排序程序在sas然後proc sort。根據下面PDF:的SAS®排序例程是順序O(NlogN),這是因爲快速 作爲比較排序可以是。

如果你有Syncsort的行貨那麼這可以加速它的網站正在努力,但是這通常是默認啓用。

http://www2.sas.com/proceedings/sugi26/p121-26.pdf

+0

羅布您好,PROC SQL確實排序內部,做一個內時除外加入和2個表中的一個被連接到小到足以裝配到memroy - 在這種情況下,它使用哈希聯接(因此不排序正在做)或者在使用索引連接時。將「_METHOD」添加爲PROC SQL選項,並查看它是否在後臺排序數據。 http://www2.sas.com/proceedings/forum2008/097-2008.pdf – 2012-09-04 14:52:25

+0

好點。我猜你可以避免使用'from'表進行排序,只有被加入的表需要進行排序。所以這可能取決於情況?無論哪種方式,我已經更新了我的答案以反映您的評論。 –

0

如果需要排序的數據集的原因是爲了與其他數據集進行合併,你可能看使用HASH對象做您的合併/查找。那麼你可能不需要對它進行排序。