One major consideration for developing a Roxie query is the amount of data that may possibly be returned from the query. Since JOIN operations can possibly result in huge datasets, care should be taken to limit the number of records any given query may return to a number that is "reasonable" for that specific type of query. Here are some techniques to help accomplish that goal:
* | The CHOOSEN and LIMIT functions should be used to limit index reads to some maximum number. |
* | Keyed JOINs should use the ATMOST, KEEP, or LIMIT option. |
* | When a nested child dataset is defined, it should have a MAXCOUNT option defined on the child DATASET field in the RECORD structure, and the code that builds the nested child dataset should use CHOOSEN with a value that exactly matches the MAXCOUNT. |
All of these techniques will help to ensure that, when the end-user expects to get around ten results, that they don't end up with ten million.