Have you looked at adding BUFNI 
and/or BUFND to the JCL DD ?

Do you have any vendor products doing VSAM tuning ? possibly doing buffer 
tuning..

Regards, 
Doug

Sent from my iPhone

On Apr 3, 2012, at 17:55, Steve Comstock <st...@trainersfriend.com> wrote:

> On 4/3/2012 3:23 PM, Frank Swarbrick wrote:
>> Current program does the following (in COBOL!).
>> 
>> - Opens KSDS for I-O
>> - Sequentially processes another file (non-VSAM).
>> - For each record in the non-VSAM file it attempts a random (keyed) read of
>> arecord on the KSDS file. The key is, essentially, a concatenation of a 
>> record
> type code ('4' or '5') and an account number. If no record of type '4' is 
> found
> then it tries again for the same account, but with record type '5'. If either
> the '4' or '5' type is found it updates it and rewrites the record (assuming 
> the
> data changed).
>> 
>> This takes about 16 minutes to run. However if the 'type 5' logic is
>> removed,so that it only ever looks for type '4' records, it takes only about 
>> one minute.
>> 
>> Our resident VSAM expert says it has something to do with the VSAM "sequence
> set" and the fact that only one is kept in memory at a time. Since the same
> sequence set doesn't appear to be able to be used for both the 'type 4' 
> records
> and the 'type 5' records it's constantly going back and forth, loading the
> "other" sequence set from disk. He says on VSE (which we were up until May 
> 2010)
> more than one sequence set can be in memory, but with MVS this appears to not 
> be
> the case.
>> 
>> 
>> Hopefully that reason is accurate. Is there a solution? We thought about
> having two COBOL FDs pointing to two DDs, where both DDs pointed to the same
> KSDS. This would probably(?) work, except for the fact of the update.
>> 
>> Thanks,
>> Frank
> 
> Well, I think we have a vocabulary problem. A VSAM KSDS only
> has one primary index, and the lowest level is the sequence
> set. You can't have two primary indexes, so you can only
> have one sequence set. It's not clear how your key is constructed,
> but  you can get the whole sequence set in memory by using the
> right JCL DD parameters.
> 
> First do a listc all against the cluster. Jot down these
> values: CI/CA for data component (shows as "PHYRECS/TRK"),
> and Levels in the index; then try this:
> 
> if this process is batch, and no CICS processing is going
> on against the data set, consider adding:
> 
>  BUFNDI=#Index_levels,BUFND=(2*PHYRECS/TRK)+1
> 
> 
> If, on the other hand, your type '4' records are accessed as
> the primary key and your type '5' are accessed as part of
> an alternate index, you might need a different collection of
> DD parameters. (Long shot guess: add BUFNDI on the DD statement
> for your AIX).
> 
> 
> 
> -- 
> 
> Kind regards,
> 
> -Steve Comstock
> The Trainer's Friend, Inc.
> 
> 303-355-2752
> http://www.trainersfriend.com
> 
> * To get a good Return on your Investment, first make an investment!
>  + Training your people is an excellent investment
> 
> * Try our tool for calculating your Return On Investment
>    for training dollars at
>  http://www.trainersfriend.com/ROI/roi.html
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: INFO IBM-MAIN

Reply via email to