>I am allowing a starts with, ends with, =, >=, <=, <>, empty, not empty filters.
I'm not sure how helpful this will be, but you can usually avoid empty(), which is NOT optimizable.
for instance:
field={}
field=' '
field=0
Could make a big difference.
I've also found that the order of the statements in the WHERE clause can make a big difference. It seems that putting those that filter the most records first is best, but you might want to play around with the order a bit. VFP's reporting of opimization is not the end-all of optimizing your SQL.