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/

Reply via email to