Obviously SET FILTER is out of the question with a table of this size,
This is not true on general:
-results is correlate with
- filtered records distribution;
- if a index is active
SET FILTER TO leftExpression = .....
is optimized if:
- leftExpression = is OPTIMIZABLE
and
- never index is active
but at the command prompt a simple BROWSE FOR table.field = "xyz"
for the commonly needed filtering works very well with the indexes that I have.
If BROWSE FOR table.field = "xyz" works very well with the indexes that I have,
then a simple Grid with
SET FILTER TO table.field = "xyz"
works very well also.
If you can use set order to the table.field index, a:
set key to "xyz"
is the best solution.
But if you want a active index and a various filtering, then
- or you build a temporary idx INDEX orderexp FOR filterexp and activate it
- or build a temporary cursor with SELECT ...,orderexp,... FROM WHERE filterexp ORDER BY orderexp
Fabio