LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (September 2004, week 3)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
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
Comments: To: ben <webcalibur@GMAIL.COM>
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 >


Back to: Top of message | Previous page | Main SAS-L page