FIRST_ROWS and ALL_ROWS Options
FIRST_ROWS
and ALL_ROWS
keyword
options identify two different query optimization goals: FIRST_ROWS
This option directs the optimizer to choose the query plan that returns the first qualifying record as soon as possible, ignoring plans that would sort records or create a hash table.
ALL_ROWS
This option directs the optimizer to choose the query plan that returns all the qualifying records as quickly as possible.
Inline optimizer directives
Rather than choosing either of these SET OPTIMIZATION statement options, you might instead specify an optimization-goal directive for an individual query as a comment immediately following the SELECT keyword that begins the query or subquery. For more information about the syntax and options for inline optimizer directives for queries in DELETE, SELECT, or UPDATE statements, see Optimizer Directives.
External optimizer directives
Besides the query optimizer directives that the SET OPTIMIZATION statement can specify for queries in the current session, or the inline optimizer directives that can follow the SELECT keyword, the database server also supports a third format for influencing the choice of execution path by the query optimizer.
The
DBA or user informix can execute the SAVE EXTERNAL DIRECTIVES
statement to register external optimizer directives,
also called external directives, in the sysdirectives table
of the system catalog. If support for external directives has been
enabled, the Informix® database
server applies these directives automatically to queries that match
a specified SELECT statement. The ACTIVE
, INACTIVE
,
or TEST ONLY
keyword options of SAVE EXTERNAL DIRECTIVES
statements respectively enable, disable, or restrict the scope of
an external directive.
Setting the EXT_DIRECTIVES configuration
parameter in the ONCONFIG file to 1
or 2
,
and setting the IFX_EXTDIRECTIVES client-side environment
variable to 1
enables support for external directives.
Independent
of the EXT_DIRECTIVES configuration setting or the IFX_EXTDIRECTIVES client-side
settings, the SET ENVIRONMENT EXTDIRECTIVES setting of '1'
, on
,
or ON
for the session environment enables external
optimizer directives in the current user session, if any active external
directives are registered in the sysdirectives table.
The SET EXPLAIN output file displays whether external directives are in effect for a query.
For more information about external optimizer directives, see Enabling or disabling external directives for a session.