Fragmentation support

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

When the secondary access method indexes a fragmented table, a single index might point to multiple table fragments. To obtain or set the fragment identifier for a row in an indexed table, the access method uses functions such as Row-ID descriptor describes.

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 index, call the mi_tab_partnum() function.

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

Tip: For an ALTER FRAGMENT statement, the database server creates a scan descriptor, but not a qualification descriptor. The mi_scan_quals() function returns a NULL-valued pointer to indicate that the secondary access method must return key values and the row identifier information for each index entry.