>Hello!
>I have a FoxPro application, that handles large volume of data. The tables have simple indexes defined on its fields. In an attempt to speed up my queries, I modified my indexes to match my queries. I read about Rushmore optimization and altered the indexes so that they obey the Rushmore principles.
> - My indexes look exactly like the query.i.e if my query defines a criteria as 'Alltrim(Upper(fieldname))', I have an index defined as alltrim(upper(fieldname)). I did this because I read that the optimization will be turned off, if the indexes are altered.
>
> - I have avoided the use of $,At(),Empty() functions.
>
> - Most tables have 4-7 indexes defined.
>
>After making these changes, my quries take longer. I am trying to find out why this happens. Any help would be much appreciated.
>
>Thanks in advance.
>
>Ria
1) Indices should be fixed length. Use padr() instead of alltrim().
2) More indices doesn't always mean better performance. And full Rushmore Optimization is sometimes slower than partial Rushmore Optimization. See my FAQ #8109 for more details.
HTH, Hilmar.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)