Date: Wed, 15 Sep 2004 14:33:39 -0400
Reply-To: sashole@bellsouth.net
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Paul M. Dorfman" <sashole@BELLSOUTH.NET>
Organization: Sashole of Florida
Subject: Re: SAS requirements
In-Reply-To: <20319261.0409142248.5508e5f1@posting.google.com>
Content-Type: text/plain; charset="us-ascii"
Ben,
To add my $.02 to what Larry said (and Larry, in his usual lucid manner,
pretty much said it all), consider taking a peek at the actual SAS code
producing the reports. Although it is not very difficult to code reasonably
efficient SAS, it is way too easy to write SAS programs maladroit to the
point where no hardware upgrade is capable of restarting the show. As an
extreme example, no hardware can protect from
data _null_ ;
do until (0) ;
end ;
run ;
Or, more realistically (since the step up above will never end), albeit
again on the rather egregious side,
data a b ;
do key = 1 to 1e4 ;
data = key ;
output ;
end ;
run ;
proc sql ;
create table c as select * from a, b ;
quit ;
The moral is that unless you are an accomplished SAS programmer with the
knack for balancing programming and machine efficiency and with the habit of
programming in this modus operandi by default, and you have written the code
yourself, there may be a lot of room for improvement without the necessity
of reaching for the hardware purse. Unfortunately, I have been noticing
lately that programming efficiency takes a back seat to the increasingly
cheap high-performance hardware, the trend largely based on the premise that
if a piece of code "gets the job done", it does not matter whether it
executes in 1 second or 10 seconds. Sometimes, it is true; for example, if
cutting the run time from the latter to the former requires a ten-fold
increase in programming complexity (however vaguely the latter could be
defined), it may not be justified as a one-time effort. More frequently,
though, programs written with utter neglect for efficiency will scale
extremely poorly and, since data fed into a production program have the
propensity to change only in one direction - namely, to increase - an
awkward piece seeming to run seemingly rapidly can equally rapidly become a
CYA pain should its I/O volume suddenly rise. As an illustration, the second
program above would run in under a second ("just fine") if 1e4 were replaced
with 1e3, but as is, it has the potential to hose up the CPU, the disk(s),
SAS utility files, and someone's patience.
If you cannot review the reports for basic efficiency (for example, you are
not a SAS programmer or just have no time), have a qualified person take a
look. Spotting gross inefficiencies is not very time-consuming, so if there
are no such people around, hire one for 1 day at the rate of, say, $200 an
hour. Those will be $1600 very wisely spent, for no matter what the sentence
happens to be, you either may end up not having to buy any hardware at all,
or if you do have to, you will know what to buy and, more importantly,
whether it will help. If it will not, you may end up hiring the same guy at
a lower rater and for a bit longer time to redesign the programs/process. In
any case, you will know what you are up against and able to act accordingly.
Kind regards,
----------------
Paul M. Dorfman
Jacksonville, FL
----------------
> -----Original Message-----
> From: SAS(r) Discussion [mailto:SAS-L@LISTSERV.UGA.EDU] On
> Behalf Of ben
> Sent: Wednesday, September 15, 2004 2:49 AM
> To: SAS-L@LISTSERV.UGA.EDU
> Subject: SAS requirements
>
> Hi...
>
> I just took over SAS for about 3 months and got tons of
> complains that the reporting is really slow. My hardware specs:
>
> CPU: Pentium III
> RAM: 256MB
> OS: Win NT 4
> SAS V8.2
>
>
> This server runs wincron and will execute sas files, my
> records are in millions and running average of 25 reports
> daily, no counting monthly and weekly reports.
> I've check my task manager and it takes up 100% of CPU
> resource. My problem, report no.1 start run at 3am daily and
> the last report ends at 4pm, should there be mothly or weekly
> report running at the same time, then i am in BIG trouble. I
> am thinking of upgrading my hardware to dual processor and 1GB of Ram.
>
> Please advise if SAS would fully utilise dual prosessor.
> Thanks in advance
>
|