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