Hi all,

As I recall, as long as the value to the left of the "=" matches a key, then
Rushmore will use it.  

So if you use a compound key (index on city + state +
padl(allt(str(radius)),6,'0') tag MyTag) , it will only be fast if you use
something like:

Select * from MyTable
where city + state + padl(allt(str(radius)),6,'0') = "some value with padded
spaces, etc."

In most cases, this would be silly.  But there are exceptions - yours is not
apparently one of them as indexes on the individual fields will always be
faster.

Keep in mind that if you have an index on radius or even str(radius), the
following still will not be optimized:
Select * from MyTable
where padl(allt(str(radius)),6,'0') = "  342342"

You would have to actually have an index build on
padl(allt(str(radius)),6,'0') - not very useful.

The key question is, once you have filtered by city and state, how many
records will you then have?  If many (>10,000 or so), then an additional
filter option might help. But VFP can filter 10,000 (and usually much more)
records very fast, even without indexes - so only testing would help.

Anyway, hope things worked out for you,

Fletcher

Fletcher Johnson
fletchersjohn...@yahoo.com
LinkedIn.com/in/FletcherJohnson
beknown.com/FletcherJohnson
twitter.com/fletcherJ
strava.com/athletes/fletcherjohnson
408-946-0960 - work
408-781-2345 - cell


-----Original Message-----
From: ProFox [mailto:profox-boun...@leafe.com] On Behalf Of Frank Cazabon
Sent: Friday, November 3, 2017 5:22 PM
To: profox@leafe.com
Subject: Re: Reminder about VFP compound indexes and best strategy

Individual indexes on each field should work, not an index on the compound
expression.

On 3 November 2017 17:09:39 GMT-04:00,
mbsoftwaresoluti...@mbsoftwaresolutions.com wrote:
>VFP9SP2 free table
>
>I've got a table with this structure:
>
>city c(30)
>state c(2)
>radius i
>distance i
>
>My query is looking for city, state, and radius, to get back those 
>whose distance is <= InputParameter.
>
>select *
>   from MyTable
>  where city = m.tcCity and state = m.tcState and radius <= m.tiRadius
>
>Not sure if I should
>index on city tag city
>index on state tag state
>index on radius tag radius
>
>or
>
>index on city + state + padl(allt(str(radius)),6,'0') tag MyTag
>
>???
>
>I know I can use SYS(3054) to get my answer but I'm getting ready to be
>
>away from the office for a bit and was hoping someone knew the obvious 
>answer.  Otherwise I'll run my testing later tonight.
>
>(At the very least, hopefully somebody learned about SYS(3054,x,y)
>today.)
>
[excessive quoting removed by server]

_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/056301d359b1$ce55a880$6b00f980$@yahoo.com
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to