>>>>>Correction. The field is Numeric(6,0) but there is an index tag on this field. Yet, Rushmore is not used.
>>>>
select * from myTable where pkfield IN (select top 100 pkfield from myTable order by pkfield DESC)
>>select top 100 pkField from myTable ORDER BY PkField DESC ?
>>
>>Also ORDER BY is not guaranteed to be optimizable. It's VFP engine that decides if it wants to optimize it or not.
>
>I am changing my approach to this design. Thanks.
Assuming you have a large table and waited for amounts of time at least large enough to twidlle your thumbs twice,
why not try timing the old xBase way of walking the index?
Set order to pkField desc
local lnFnd, loScat
Copy structure to myCursor
lnFnd = 0
Scan while m.lnFnd<100
scatter memo name loSact
insert into myCursor Name loScat
lnFnd = m.lnFnd+1
endscan
Set order to pkField desc
You can keep the SQL-equivalent in comment for upgrading to SQL backends... Might be a good check into the SQL-engine, if the table has a couple of million recs.
regards
thomas