[AUXWODBC], [ORACLE], [SYBASE]
use_subquery=0
0 means switched off, 1 means switched on.
use_subquery controls whether an additional predicate involving a subquery is generated in SELECT statements. The purpose of the subquery is to limit the first key allowed to vary in a non-exact match fetch to have the nearest possible value to its current value. Whether or not this improves performance will depend on how efficient the SQL database is at executing a subquery to determine a MIN or MAX value, and whether the expense of this operation is offset by the saving due to a smaller result set being generated. Experiments suggest that on the whole turning on this option is beneficial.
One situation where the option is not beneficial is if this key does not in fact vary much. For example a point of service system may well have tables where the first key component of most tables is a work station ID. On a local database this key would typically be constant, so the subquery feature would not restrict the result set. In such a system using a non DP4 database would lead to poor performance with a Gateway ADC unless applications fix that key when doing fetch(NEXT) type operations. It would be best to change the key structure of the tables so that the first key does discriminate between records better, or else to alter the application so that it specifies that this key must match.
It should be noted that this option is partially incompatible with the use_long_query option. If both options are turned on the use_subquery option will only have an effect when exactly one key can vary.