Direct row access (PRIMARY_ACCESSTYPE='D')
If an application selects a row from a table that contains a ROWID column, the row ID value implicitly contains the location of the row. If you use that row ID value in the search condition of subsequent SELECT, DELETE, or UPDATE operations, Db2 might be able to use direct row access navigate directly to the row.
Direct row access is very
fast because Db2 does
not need to use the index or a table space scan to find the row. Direct
row access can be used on any table that has a ROWID column.
To use direct row access, you first select the values of a row into host variables. The value that is selected from the ROWID column contains the location of that row. Later, when you perform queries that access that row, you include the row ID value in the search condition. If Db2 determines that it can use direct row access, it uses the row ID value to navigate directly to the row.
If an application
selects RID built-in function from a table, the result contains the
location of the row. If you use the RID built-in function in the search
condition of subsequent SELECT, DELETE, or UPDATE statements, Db2 might
be able to choose direct row access to navigate directly to the row.
For a query to qualify for direct row access, the search condition
must be a Boolean term stage 1 predicate that fits one of these descriptions:
If Db2 cannot
locate the row through direct row access, it does not switch to another
access method and just returns no row found. The EXPLAIN output in
the PLAN_TABLE is changed if Db2 chooses
the direct row access when the above conditions are satisfied, with
the RID built-in function used as a search condition.