Fragmentation support

A fragmented table has multiple physical locations, called fragments. The user specifies the criteria by which the database server distributes information into the available fragments.

When the table is fragmented, each call to the access method involves a single fragment rather than the whole table. An SQL statement such as CREATE TABLE can result in a set of purpose-function calls from am_open through am_close for each fragment.

The database server can process fragments in parallel. For each fragment identifier, the database server starts a new access-method thread. To obtain the fragment identifier for the table, call the mi_tab_partnum() function.

A user might change the way in which values are distributed among fragments after data exists in the table. Because some rows might move to a different fragment, an ALTER FRAGMENT statement requires a scan, delete, and insert for each moved row.