I'm having difficulty ensuring the indexes are used in UniQuery. In D3, if I
do the
following:
26 Demo (0)-> SELECT GLPOST WITH INDEX_2 = "0605]"
[4041] 21791 items selected.
...it would always use the index if one existed. I knew the index was used
because
the selected message didn't include the " out of {n} items." string appended to
the
end (e.g. "[404] 21791 items selected out of 884083 items.").
On an old P3 server, running D3, with 50 people on it, 512Mb memory (shared by
Linux), this took about 9 seconds. On a new Intel Xeon server, running
UniData, with
5 people on it, 2Gb memory, Windows 2K3, this took about 19 seconds.
In UniData, I notice some selects are taking significantly longer than in D3.
I've
properly indexed the file, I can test that indexing works by using a BASIC
program
than does the usual SETINDEX, READXFWD, READXBCK, etc. The index looks like:
22 Demo (0)-> LIST.INDEX GLPOST
Alternate Key Index Details for File GLPOST Page 1
File.................. GLPOST
Alternate key length.. 45
Node/Block size....... 4K
OV blocks............. 1 (0 in use, 0 overflowed)
Indices............... 2 (0 D-type)
Index updates......... Enabled, No updates pending
Index-Name...... F-type K-type Built Empties Dups In-DICT S/M F-no/VF-expr....
INDEX_1 V Txt Yes Yes Yes Yes S YRMO_PSTD : JRNL
INDEX_2 V Txt Yes Yes Yes Yes S OCONV( CLIENTNO,
'MR%4' ) : YRMO
_PSTD : OCONV( A
CCTNO, 'MR%6' )
: OCONV( @ID, 'M
R%8' )
2 Demo (0)-> LIST GLPOST INDEX_2
LIST GLPOST INDEX_2 12:14:43 Aug 15 2007 1
GLPOST INDEX_2.................
829572 026020040700407000829572
377626 014020030300407000377626
583056 060520030800307000583056
500884 077020000500407000500884
952830 095020050100513000952830
When I try the REQUIRE.INDEX keyword it seems to fail.
2 Demo (0)-> select GLPOST WITH INDEX_1 LIKE "200702..." REQUIRE.INDEX
In E:\DataTrust\DTA\BP\BP\_TCL.SHELL at line 1023 select GLPOST WITH INDEX_1
LIKE
"200702..." REQUIRE.INDEX
In E:\DataTrust\DTA\BP\BP\_TCL.SHELL at line 1023
--------------------------------------------------------^
In E:\DataTrust\DTA\BP\BP\_TCL.SHELL at line 1023 syntax error
2 Demo (0)-> select GLPOST REQUIRE.INDEX WITH INDEX_2 LIKE "0605..."
Index can not be used processing this query.
2 Demo (0)->
Does anyone know how to make sure indexes are used automatically by UniQuery,
or how
to make them work period? I can't seem to find anything in the UDT.OPTIONS
manual.
Thanks.
Bill Haskett
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/