|
In an interesting thread on sorting large SAS data sets, Don Stanley posted (in
part) the following:
<<Don's entire posting can be found beneath the Sig line, below>>
>Changing LRECL> some of the posts here used 6144. I would use 27648 for your
>work DD (again check this, i think this is the right number) if you have 3390
>dasd as you gain an improvement in excps esp since you have such a lot of
>variables.
>
Don, as always, a _GREAT_ suggestion! I have been amazed (more like dazed and
confused) by the number of organizations that are still using the old default
block size of 6144 for SAS Work data sets. In my after-work SAS under MVS
consulting life, I have just encountered this problem (and fixed it) in (yet)
another organization that has a pretty mature (SAS is 15-years old there) SAS
programming culture, and relatively savvy SAS programmers. Since this
organization has an IS Chargeback system that charges for I/O's, my I/O
reduction efforts in their production and test SAS batch jobs have been very
appreciated.
At a block size of 6144 on IBM 3390 DASD, a SAS data library will be stored with
eight (8) blocks to the track and only occupy 92% of the track. At a block size
of 27648, the same SAS data library will be stored with two (2) blocks to the
track and occupy 98.8% of the track. Half-block blocking provides optimal DASD
track usage. Half-track blocking provides optimal I/O performance, as
(potentially) only two I/O's are needed to read a track, instead of eight. As
Don stated; half track blocking (LRECL=27648 BLKSIZE=27648) is definitely the
way to go on the Work (and on the Sort) SAS data sets!
I hope that this answer proves helpful now, and in the future!
Of course, all of these opinions and insights are my own, and do not reflect
those of my organization or my associates.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Michael A. Raithel
"The man who wrote the book on performance."
E-mail: raithem@westat.com
Author: Tuning SAS Applications in the MVS Environment
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Destiny is what you are supposed to do in life. Fate is what kicks you in the
ass to make you do it. -- Henry Miller
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<<Here is Don's entire original posting>>
Couple of suggestions that I haven't seen suggested .. (but I haven't seen Mike
Raithels response yet) ...
multivolume work space> Override the work dd with (check the syntax, I'm not at
work and my PC doesn't emulate MVS yet -- still waiting for the Microsoft
enhancement -- your site may also have an SMS DATACLAS class set up for
multivolume SAS datasets).
//WORK DD UNIT=(SYSDA,10),SPACE=(CYLS,1000)
This will allocate 10000 cylinders of work space spread across 10 work packs. I
find using 1000 cylinders per pack much better than using say 3500 as you may
not find 3 packs with 3500 cylinders, but 10 packs with 1000 is often
acheivable.
Changing LRECL> some of the posts here used 6144. I would use 27648 for your
work DD (again check this, i think this is the right number) if you have 3390
dasd as you gain an improvement in excps esp since you have such a lot of
variables.
Don
Kattamuri.Sarma@RESPONSEINSURANCE.COM wrote:
> ---------------------- Forwarded by Kattamuri S Sarma/HR/NY/DRC on 10/22/99
> 09:05 AM ---------------------------
>
> Kattamuri.Sarma@RESPONSEINSURANCE.COM@LISTSERV.UGA.EDU> on 10/22/99
> 09:01:29 AM
>
> Please respond to Kattamuri.Sarma@RESPONSEINSURANCE.COM
>
> Sent by: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
>
> To: SAS-L@LISTSERV.UGA.EDU
> cc:
>
> Subject: Sorting large data sas data sets: More Help !!
>
> Dear SAS-lers :
> I have been getting this message, no matter how much I increase the work
> files (sortwk001,...sortwk008).
> This is done on the main frame. (MVS)
> proc sort data=temp ;
> by pno masterkey ;
> run ;
> temp is a temporary sas data set. The way SAS is configured at this
> installation, SYNCSORT ( or something
> similar) is used . Temp has 1.7 million records, and 90 variables.
>
> Sort did not complete successfully. See messages on the Job Console Log o
> ERROR: Sort did not complete successfully. See messages on the Job Console
> Log o
> ERROR: Sort did not complete successfully. See messages on the Job Console
> Log o
> ERROR: Host sort cannot be used.
>
> ERROR: Host sort cannot be used.
>
> ERROR: Host sort cannot be used.
>
> When I reduce the number of work fikles Sortwk001-sortwk005, and reduce
> the number of cylenders requested, I get the following message :
>
> DFSORT TERMINATED WITH U0318 ABEND DURING PHASE S 3
> JOB STAKSSPE STEP SAS69 TIME 090347 DATE 99295
>
> I would appreciate any suggestions
>
> TIA
> Kattamuri Sarma
--
Don Stanley, B.SC, Dip O.R.S, MNZCS Director, Sysware Consulting Group
Box 634, Wellington, NEW ZEALAND
Ph 064 21 479 863, http://www.sysware.co.nz
EMAIL:: don_stanley@xtra.co.nz, ICQ 35025765
Author: Beyond The Obvious With SAS Screen Control Language
Author: Solutions for Your GUI Applications Development Using SAS/AF FRAME
Technology
Genealogy: Stanley(Banbury), Bowell (London), Cartwright (Brum), Ryan
(Limerick), Walsh (Co Clare),
Bealing (Gillingham), Merrilees (Glasgow), More(Glasgow), Smith(Kidderminster),
Hilsden(Oxfordshire)
|