I think there must be something different in your scenario, or something is wrong with your environment. SAS should be able to process this volume without breaking a sweat.
To move the conversation forward, I've created the following code to create a datasets, and run a SORT and SQL on it, both fairly intensive. The dataset has 2.4 million records, 5 18 byte fields.
data DS1;
call streaminit(200529);
do i = 1 to 2400000;
Field1 = "abcde" || put(int(rand('uniform') * 100000000), z8.) || "fghij";
Field2 = "abcde" || put(int(rand('uniform') * 100000000), z8.) || "fghij";
Field3 = "abcde" || put(int(rand('uniform') * 100000000), z8.) || "fghij";
Field4 = "abcde" || put(int(rand('uniform') * 100000000), z8.) || "fghij";
Field5 = "abcde" || put(int(rand('uniform') * 100000000), z8.) || "fghij";
output;
end;
run;
proc sort data=DS1 out=DS2;
by Field1 Field2 Field3 Field4 Field5;
run;
proc sql noprint;
create table DS3 as select
* from DS1 where substr(Field3, 6, 1) > "5"
order by Field5;
quit;
The whole thing runs in 4 seconds on my plain-jane laptop.
See what happens in your environment, and let us know.
Tom
... View more