The more data you request from the server, the more processing time you use and the more network traffic you create. Request as few records as necessary. For example, rather than opening a large result set, you should use a restriction to limit the size of the result set, being careful to use restrictions that the server can process.
As well as restricting the records returned, it can be useful to restrict the fields that you request. For example, because Memo and OLE Object fields can take a long time to retrieve from a server, you should only include them in your query's SELECT if you know you will need them. If you rarely need certain fields, you might consider opening a separate Recordset when the need arises, using an appropriate WHERE clause to return just the record required.