SQL Reference
The SET CURRENT EXPLAIN MODE statement changes the value of the CURRENT
EXPLAIN MODE special register. It is not under transaction
control.
Invocation
This statement can be embedded in an application program or issued
interactively. It is an executable statement that can be dynamically
prepared.
Authorization
No special authorization is required to execute this statement.
Syntax
.-=-.
>>-SET CURRENT EXPLAIN MODE--+---+----+-NO----------------+----><
+-YES---------------+
+-EXPLAIN-----------+
+-RECOMMEND INDEXES-+
+-EVALUATE INDEXES--+
'-host-variable-----'
Description
- NO
- Disables the Explain facility. No Explain information is
captured. NO is the initial value of the special register.
- YES
- Enables the Explain facility and causes Explain information to be inserted
into the Explain tables for eligible dynamic SQL statements. All
dynamic SQL statements are compiled and executed normally.
- EXPLAIN
- Enables the Explain facility and causes Explain information to be captured
for any eligible dynamic SQL statement that is prepared. However,
dynamic statements are not executed.
- RECOMMEND INDEXES
- Enables the SQL compiler to recommend indexes. All queries that are
executed in this explain mode will populate the ADVISE_INDEX table with
recommended indexes. In addition, Explain information will be captured
in the Explain tables to reveal how the recommended indexes are used, but the
statements are neither compiled nor executed.
- EVALUATE INDEXES
- Enables the SQL compiler to evaluate indexes. The indexes to be
evaluated are read from the ADVISE_INDEX table, and must be marked with
EVALUATE = Y. The optimizer generates virtual indexes based on the
values from the catalogs. All queries that are executed in this explain
mode will be compiled and optimized using estimated statistics based on the
virtual indexes. The statements are not executed.
- host-variable
- The host-variable must be of data type CHAR or VARCHAR and the
length must not exceed 254. If a longer field is provided, an error
will be returned (SQLSTATE 42815). The value specified must be NO, YES,
EXPLAIN, RECOMMEND INDEXES, or EVALUATE INDEXES. If the actual value
provided is larger than the replacement value specified, the input must be
padded on the right with blanks. Leading blanks are not allowed
(SQLSTATE 42815). All input values are treated as being
case-insensitive. If a host-variable has an associated
indicator variable, the value of that indicator variable must not indicate a
null value (SQLSTATE 42815).
Notes
Explain information for static SQL statements can be captured by using the
EXPLAIN option of the PREP or BIND command. If the ALL value of the
EXPLAIN option is specified, and the CURRENT EXPLAIN MODE register value is
NO, explain information will be captured for dynamic SQL statements at
runtime. If the value of the CURRENT EXPLAIN MODE register is not NO,
then the value of the EXPLAIN bind option is ignored. For more
information on the interaction between the EXPLAIN option and the CURRENT
EXPLAIN MODE special register, see Table 143.
RECOMMEND INDEXES and EVALUATE INDEXES are special modes which can only be
set with the SET CURRENT EXPLAIN MODE command. These modes cannot be
set using PREP or BIND options, and they do not work with the SET CURRENT
SNAPSHOT command.
If the Explain facility is activated, the current authorization ID must
have INSERT privilege for the Explain tables or an error (SQLSTATE 42501) is
raised.
For further information, see the Administration
Guide.
Example
Example 1: The following statement sets the CURRENT
EXPLAIN MODE special register, so that Explain information will be captured
for any subsequent eligible dynamic SQL statements and the statement will not
be executed.
SET CURRENT EXPLAIN MODE = EXPLAIN
[ Top of Page | Previous Page | Next Page ]