Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Optimizing query on table using GENERAL index
Message
From
20/02/2008 10:38:35
 
 
To
All
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Optimizing query on table using GENERAL index
Environment versions
Visual FoxPro:
VFP 9 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01294254
Message ID:
01294254
Views:
73
Hi all,

I have just finished implementing GENERAL indexes on a client's data so that they get "culturally correct sorting". For their client's table, I changed a few of the indexes from:

INDEX ON UPPER(Lastname) TAG Lastname

to the new and improved:

INDEX ON Lastname TAG Lastname COLLATE General

This works fine for viewing records but now I have lost rushmore optimization on a few queries. This *used* to be optimizable under machine indexes:

<
>

SELECT Lastname, Firstname ;
   FROM Lawyers ;
   WHERE UPPER(lastname) == UPPER(lcLastname) AND ;
      UPPER(Firstname) == UPPER(lcFirstname) ;
   INTO ARRAY laNames

<
>

It was optimizable because the left side of the WHERE matched a tag. But now the tags do not include UPPER(). Users noticed a slowdown and so I investigated using SYS(3054) and found out that the above expression is no longer optimized. The other things I tried were:

1) removing UPPER() from the left side of the above equation; did not help and wrong results

2) adding the UPPER() back to the tag so that it matched but this did not help.

Any way to get this optimized?

Albert Gostick
Next
Reply
Map
View

Click here to load this message in the networking platform