Queries, access methods, and abstract plans

For any specific table, there can be several access methods for a specific query: index scans using different indexes, table scans, the OR strategy, and reformatting are some examples.

This simple query has several choices of access methods:

select * from t1 
where c11 > 1000 and c12 < 0

The following abstract plans specify three different access methods:

Abstract plans can be full plans, specifying all optimizer choices for a query, or can specify a subset of the choices, such as the index to use for a single table in the query, but not the join order for the tables. For example, using a partial abstract plan, you can specify that the query above should use some index and let the optimizer choose between i_c11 and i_c12, but not do a full table scan. The empty parentheses are used in place of the index name:

(i_scan () t1)

In addition, the query could use either 2K or 16K I/O, or be performed in serial or parallel.