You are obviously on a Windows system. Optimizing performance is using the hardware resources (CPU IO/DASD memory) being in your system as optimal as possible. For that knowing the bottlenecks wiht the processing is important. 1- How many dasd -drives (spinning) do you have? The IO is serialized at that point (OS/hardware limitation)) Do you have only one physical drive than putting more random load will increase the real time job proces. You want to decrease that. In this case the SPD engine won't be helpfull it is putting more random load. 2- Do you have a SSD in your system? Than put the most have IO related files there (SASWORK/Data) 3- What is your data-structure, do you have many columns/variabels wiht a lot of spaces repeatable values. Than test the processing with COMPRESS=binary (Ross compression on rows A simplified zip). Having a ratio over over 50% you can see gains in processing times (real time) and sometimes in execution time. That decrease of execution time has the only explanation that the system does have less work to process buffers to your storage. With a SSD the trade off's are different as you are missing the rotation delays (typical 10 ms). 4/ How much memory do you have 8Gb 16Gb? When the input data fits easily into memory eg 1gb data on a 12Gb system, than think on SASFILE usage. http://support.sas.com/documentation/cdl/en/lestmtsref/68024/HTML/default/viewer.htm#n0osyhi338pfaan1plin9ioilduk.htm 5/ Programming / coding solutions. Only the SAS datastep is reading one record at a time from IO buffers. Procs are doping different things. Proc summary does have a class and by for the same logic. When all resulting data fits into memory than uses the class approach. It avoids any sorting needs. The by approach is able to process data beyond easy native processing but needs sorted data. Going to use Proc SQL for reporting than you have a threaded approach several treads will do a part of the processing. Remember the relational approach was designed for OLTP where the ordering of data in the storage is logical irrelevant. SQL coding is not using any assumed ordering. This differences to the datastep has advantages and disadvantages. Wiht multihreading all cpus in your system can be used at the same time. Aside proc SQL thre are some other procs doing this. sort report summary means tabulate. Use one of those when possible http://support.sas.com/documentation/cdl/en/lrcon/68089/HTML/default/viewer.htm#n0czb9vxe72693n1lom0qmns6zlj.htm
... View more