>Hence we are finding that we do need a DELETED Index and by putting NOFILTER in the query has gained us the most bennefits.
>
>Question I have is what is the draw back of putting a NOFILTER in all of our query's? Realizing that in should not be necessary, but it the quickest way to make performance issues.
>
Your results don't make sense to me. NOFILTER should slow a query down or have no effect; I can't see how it would speed a query up.
Oh, wait. Is it the query itself that got faster or the use of the result cursor in, say, a grid? That would improve with NOFILTEr.
What NOFILTER does is prevent VFP from taking an optimization shortcut. When a query involves a single table, and the field list contains only fields of the original table (no expressions), and the WHERE clause is fully optimizable, VFP simply filters the original table rather than creating a new file on disk. Since disk I/O is one of the slowest things around, this speeds up the query considerably.
However, when you use the cursor, what you actually have is a filtered table. Grids don't handle that very well.
To answer the question you asked, on a query involving more than one table, NOFILTER has no effect at all.
As for DELETED() and SET DELETED, check this topic:
http://fox.wikis.com/wc.dll?Wiki~NonDiscriminatingIndex~VFPTamar