02.05.2013 Views

SAS(R) 9.1.3 Companion for z/OS

SAS(R) 9.1.3 Companion for z/OS

SAS(R) 9.1.3 Companion for z/OS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

214 Optimize I/O <strong>for</strong> Sequential Libraries Chapter 10<br />

Sequential Processing Pattern<br />

Use the following recommendations to optimize per<strong>for</strong>mance when using a sequential<br />

access pattern:<br />

3 Choose a library block size that corresponds to half-track blocking, that is, two<br />

blocks per track. For example, specify:<br />

option blksize(3380)=half blksize(3390)=half;<br />

3 Select a BUFNO value that is an even number between 6 and 10. Setting BUFNO<br />

to a value from 10 to 30 might result in small additional gains in the number of<br />

bytes transferred per unit of elapsed time; however, this gain might come at the<br />

expense of monopolizing the channel or the device. Consult with your system<br />

administrators to evaluate the likelihood of this problem occurring, as well as the<br />

impact on the system.<br />

3 Choose a larger BUFNO value than the default value. Start with 10, although it<br />

might be helpful to increase the page size to 30. The per<strong>for</strong>mance benefit will vary<br />

depending upon the cache scheme that is employed by the controller on which the<br />

data library resides.<br />

3 Consider using the In-Memory File (IMF) feature <strong>for</strong> a <strong>SAS</strong> file that will be<br />

accessed across many <strong>SAS</strong> steps (DATA / procedure) if the file is small enough to<br />

fit into the available region size. Load the file using the <strong>SAS</strong>FILE statement prior<br />

to the <strong>SAS</strong> steps that will process the file. The file will be read and, if necessary,<br />

written only once. Without IMF, the file would be read once per step. See<br />

“<strong>SAS</strong>FILE Statement” on page 401 <strong>for</strong> more in<strong>for</strong>mation on how to reserve enough<br />

space to hold the entire data set in memory while it is being processed.<br />

Random Processing Pattern<br />

Use the following criteria to optimize per<strong>for</strong>mance when using a random access pattern:<br />

3 Choose a library block size of 6K, if that block size is practical. However, <strong>for</strong> some<br />

DASD controller configurations, half-track blocking per<strong>for</strong>ms nearly as well as a<br />

6K block size <strong>for</strong> random access. Half-track blocking, which results in fewer<br />

inter-block gaps, allows more data to be packed on a track.<br />

3 If necessary, explicitly set the member page size, the BUFSIZE, equal to the<br />

library block size.<br />

3 Consider using the <strong>SAS</strong>FILE statement to load a repetitively accessed file, such as<br />

a master file, into memory. The elapsed time <strong>for</strong> such operations is dramatically<br />

reduced by IMF because all of the member pages that need to be accessed must be<br />

read into memory only once. However, take care to ensure that the region size <strong>for</strong><br />

the job is large enough to contain the file being loaded. It might also be necessary<br />

to consult with your z/<strong>OS</strong> system administrator to ensure that the job is protected<br />

against having the working-set size <strong>for</strong> its virtual storage trimmed.<br />

Optimize I/O <strong>for</strong> Sequential Libraries<br />

Sequential <strong>for</strong>mat bound libraries are those libraries that are processed with the TAPE<br />

engine.<br />

3 Use the default BUFSIZE when you access sequential <strong>for</strong>mat bound libraries. The<br />

default BUFSIZE is always the most appropriate choice.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!