× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



All,
 
Since I've been going on about record blocking being the important part
of things (at least as far a batch processing using the READ opcode
goes), here is a link to IBM's document about it:
 
http://www-912.ibm.com/s_dir/slkbase.NSF/0/d6738e1cd37e1f33862565c2007ce
f79?OpenDocument
 
and some of the relevant portions are:

Blocking works well only if one reads many records sequentially because
the block of records read are from some position in the file and the
next N records. Blocking is established at full open for the file that
is being opened, and all reads (READ verbs, not random positioning verbs
such as CHAIN) get an entire block of records.

...

The use of the blocking can greatly improve performance, and most
applications are tolerant to minor timing problems. Batch program
defaults that systems use are often too small as they are often a
compromise between what is best for batch and keeping blocks within
reasonable size to minimize timing problems.

If the compiler has defaulted the open for sequential only, the system
chooses a block size such that the number of records fits in a block of
4K. This default relates to the IBM(r) System/38(tm) implementation and
has never been changed. Making this blocking factor larger typically
greatly improves batch performance but it may make some interactive
application worse; therefore, it was not changed.

The override database file (OVRDBF) command is used to control both the
size of the block and to turn blocking on and off.

The sequential only (SEQONLY) parameter can override the program
specification of blocking to not block (SEQONLY *NO) or change the size
of the block to match the program intent.

...

To change the number of records in the block to match the maximum size
of a single system I/O operation. The value that will usually result in
the best system performance, has proven to be the size that is closest
to the maximum size of a single system disk I/O. The size for CISC
system is 32,767 (32K), and for RISC systems is 131,072 (128 K). The
SEQONLY parameter is expressed in the number of records. So one must
calculate number of records from the ideal block size by knowing the
physical record length and dividing that into the I/O size. The
calculation of physical record length can be somewhat difficult. The
length of the data, at least an additional database status byte, and the
record may have additional information on variable length fields, or
null value indicators. A reasonable approximation is
32000(128000)/rcdlen+1 if no nulls or variable length, else
28000(110000)/reclen. The best length is one that is less than the
machine maximum.

Rory

p.s. I think READE, READPE and even READP count as random reads, rather
than sequential reads - can anyone confirm this?



As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.