At 02:16 PM 6/17/2004, you wrote:
[snipped]

Note: SELECT F is a BASIC select, not Retrieve's (not the MV Query
Language's) verb.   It does not really select the file,  it merely sets
up for the subsequent READNEXTs to truly read the next key.  So READNEXT
ID;READ REC FROM F, ID involve going to the file 2x.  Generally the
group is still in memory when READ is requested.  on a well-sized,
well-behaved file several READNEXT-READ pairs will be acting on a group
or groups loaded into memory only once.
But is that where the inefficiency lies? Doing the READ subsequent to
the READNEXT?

Actually, the BASIC SELECT is probably where you ARE spending the most time. A true SELECT generally is a single pass thru the file (assuming no indexes) creating a temporary file from which to retrieve the "next" key. The BASIC SELECT actually traverses the file structure, one key at a time, although these "reads" are via a buffer. So, the BASIC SELECT requires that each group be read into a buffer, which is then held in memory until all the keys have been scanned, at which time the NEXT group buffer is read, held and scanned, until all groups have been processed. Lots of overhead in my book.


Just my $.26
-------
u2-users mailing list
[EMAIL PROTECTED]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to