Michael, Guy,

Some corrections:

1. The filter function might be optimizable and when it is (for example if you compare a column value against a parameter) it will be offloaded when possible. Offloaded means using indexes when the DataFlex embedded database is in use or added to the WHERE clause when it is a ODBC connection.
2. When possible always apply a filter to the left most table when multiple tables are involved. So if you select all orders based on salesperson.name = 'Guy' you get a less performing result than when you select on orderheader.salespersonid = 10