Oracle has the capability to partition an
index-organized table[1].
Partitioning an index-organized table results in a table whose rows are stored in the exact order by primary key and are also segmented into individual sets of rows. This can greatly reduce response time of a query that uses the primary key in its
WHERE
clause.
The following graphic illustrates the concept of dividing an index-organized table into partitions. In the graphic, the
CUSTOMER
table is an index-organized table.
This means that all the rows are arranged in order by primary key (in this case, the
ORDER_ID
).
The
CUSTOMER
table is divided into three partitions:
- LOW_PART,
- MED_PART, and
- HIGH_PART.
There are two restrictions on partitioning an index-organized table:
- The index-organized table must be partitioned according to values of its primary key.
- The table cannot contain any columns of data types LOB or VARRAY.
An index-organized table that is not partitioned can include LOB and VARRAY data types.
The next lesson covers partitioning an object table.