UTILLOC in the configuration file allows you to specify a location different from WORK for the temporary sort file. This will reduce the requirement for the file to be sorted to 2x. If you do proc sort data=x1.xxx out=x2.xxx; where x1 and x2 are libraries on different file systems, this may also help preventing an out of space condition, because you "only" need the size of xxx to be free one time in the UTILLOC and the x2 location, alike. Then I recommend what Jaap suggested, split the file, sort every partial file on its own, and then do: data want; set have1 have2 ... haven ; by sortcrit; run; This is called interleaving, the sort order is preserved.
... View more