Abstract plans allow you to specify the desired execution plan of a query. Abstract plans provide an alternative to the session-level and query level options that force a join order, or specify the index, I/O size, or other query execution options. The session-level and query-level options are described in Chapter 31, “Creating and Using Abstract Plans.”
There are several optimization decisions that cannot be specified with set commands or clauses included in the query text. Some examples are:
The join order for flattened subqueries
In many cases, including set commands or changing the query text is not always possible or desired. Abstract plans provide an alternative, more complete method of influencing optimizer decisions.
Abstract plans are relational algebra expressions that are not included in the query text. They are stored in a system catalog and associated to incoming queries based on the text of these queries.
The tables used in this section are the same as those in Chapter 33, “Abstract Plan Language Reference.” See “Schema for examples” for the create table and create index statements.