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:
Use the index i_c11:
(i_scan i_c11 t1)
Use the index i_c12:
(i_scan i_c12 t1)
Do a full table scan:
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.