|
> From: David Gibbs
>
> In the spirit of peer review ... could you post the source code for
the
> test programs?
Fill the file with 800,000 records (use a write loop). Then add keys
with the following SQL (see, I know when to use SQL! <grin>):
UPDATE J4PP1 SET KEY1 = CHAR(RRN(J4PP1))
Joe
DDS:
A R J4PP1R
A KEY1 10
A KEY2 10 0
A DATA1 128
A DATA2 15 0
A K KEY1
A K KEY2
NATIVE:
fj4pp1 if e k disk
d x s 10 0
d rptr s 10 0
d count s 10 0
d counti s 15 5
d rseed s 15 5
d time1 s 6 0
d time2 s 6 0
d msg s 50
d mykey s like(KEY1)
c *entry plist
c parm counti
c parm rseed
*
c time time1
*
c eval count = counti
c eval rptr = rseed
c for x = 1 to count
c eval rptr = %rem(rptr + 1237 : 800000) + 1
c eval mykey = %char(rptr)
c mykey chain j4pp1r
c endfor
*
c time time2
c eval msg = %char(time1) + ' ' + %char(time2) +
c ' ' + %char(count)
c dsply msg
*
c eval *inlr = *on
SQL:
d j4pp1 e ds inz
d x s 10 0
d rptr s 10 0
d count s 10 0
d counti s 15 5
d rseed s 15 5
d time1 s 6 0
d time2 s 6 0
d msg s 50
c *entry plist
c parm counti
c parm rseed
*
c time time1
*
c eval count = counti
c eval rptr = rseed
c for x = 1 to count
c eval rptr = %rem(rptr + 1237 : 800000) + 1
c eval mykey = %char(rptr)
c/EXEC SQL select * into :j4pp1 from j4pp1 where key1 = :mykey
c/END-EXEC
c endfor
*
c time time2
c eval msg = %char(time1) + ' ' + %char(time2) +
c ' ' + %char(count)
c dsply msg
*
c eval *inlr = *on
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.