Improving join performance for queries with FIRST or LAST criteria
In versions prior to OpenEdge 11.3, processing an ABL query with multiple tables using the ABL FIRST and LAST keywords was significantly slow compared to processing a similar ABL query against a single table or against a join query that did not use FIRST or LAST criteria. The performance degradation was because the server join was unable to reduce the FIRST or LAST criteria to a single server join record during ABL to SQL translation. This widened the result set and forced client selection, and/or the client was forced to retrieve server records key by key using multiple queries.
The join performance has been improved by ensuring that all joins with FIRST or LAST criteria translate ABL to a single server join SQL statement, thus maximizing server optimization, minimizing client selection, and reducing round trips to the foreign data source.