Date: Tue, 23 Oct 2001 13:25:58 +0200
Reply-To: F a b r i z i o <Fabrizio1@USA.NET>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: F a b r i z i o <Fabrizio1@USA.NET>
Organization: KLM Royal Dutch Airlines
Subject: Re: Processing on Disk Note
jimcmi2 wrote in message <email@example.com>...
>I receive the note below during a monthly processing job. Typically, I
>ignore the message because the job runs over the weekend. However, if I am
>missing something that could decrease the processing time it would be great
>to fix it.
If you ned only the subtotals (i.e. can live without the grand total), you
may take these 2 steps:
1. PROC SORT; BY classvar;
2. PROC SUMMARY; BY classvar; (i.s.o. CLASS classvar);
Your original PROC SUMMARY attempts to keep all possible values for the
CLASS variable in memory. You apparently have quite a few different values
for your class variable. By moving a CLASS variable to a BY statement, you
tell SUMMARY (and any other PROC except PROC SORT) that it is to restart
itself for each value of the BY value.
PROC SUMMARY with BY i.s.o. CLASS will at most hold 1 value of your "CLASS"
value in memory, instead of the whole bunch. This will usually save mucht
time when processing to disk can be prevented.
If you need the grand total means as well, you may consider a second PROC
SUMMARY across the first SUMMARY result (with _FREQ_ as a FREQ variabe).