Friday, February 17, 2012

VSAM buffering tips

Tuning Sequential Access


Default data buffers for KSDS is 2
  • one reserved for splits
  • #of I/O equal number of data CI’s that contain data 
Determining Optimal Data Buffers for Input Data Set

Best performance is achieved when data component is read in full tracks

CI/Track=(PHYRECS/TRK) x (PHYREC-SIZE)
                     CISZD

PHYRECS/TRK = physical records per track  - from LISTCAT  
PHYREC-SIZE = physical record size  - from LISTCAT  
CISZD= data control interval size - from LISTCAT  

Optimum value of BUFND is =CIs per track +1

Example:

From IDCAMS LISTCAT..
CISIZE--------------4096
PHYRECS/TRK-----------12
PHYREC-SIZE---------4096

CI/Track=12 x 4096 = 12
              12
BUFND (for input dataset)=CI/TRK+1     = 13
BUFND (for output dataset)=CI/TRK+2    = 14

Random Access - Batch
Default index buffers for KSDS is 1

Best performance is achieved when enough buffers are allocated to keep all index CI’s in memory, plus one for the sequence set reads.

Index Buffers for Input Data Set

BUFNI=HURBAI -      HURBAD      + 1
      CISZI    CISZD X (CI/CA)

HURBAI = High Used RBA of index component   - from LISTCAT 
HURBAD = High Used RBA of data component   - from LISTCAT  
CI/CA = number of data CI in each data CA  - from LISTCAT  
CISZI= index control interval size - from LISTCAT  
CISZD= data control interval size - from LISTCAT  

Example:
From IDCAMS LISTCAT..
HI-U-RBA (index)-----------12288 
CISIZE (data)--------------4096
HI-U-RBA (data)----------540672
CI/CA--------------------12

BUFNI = 12288 - 540672  + 1
        1024   4096 X 12


BUFNI = 12 - 11 + 1 = 2


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.