Adaptive Server attempts to keep page allocations close together for each object (for example, a table partition, index, or a table’s text or image chain).
Typically, when Adaptive Server requires a new page:
If the object’s current extent contains a free page, Adaptive Server uses this page.
If the current extent has no free pages, but another extent assigned to the object on the same allocation unit has a free page, Adaptive Server uses this page.
If the current allocation unit has no extents with free pages assigned to the object, but has a free extent, Adaptive Sever allocates the first available page of the free extent.
If the current allocation unit is full, Adaptive Server scans the object’s OAM page for another allocation unit containing extents with free pages, and uses the first available page.
If no OAM entries indicate available free pages, Adaptive Server compares the OAM entries to the global allocation map page to see if any allocation units have free extents. Adaptive Server allocates the first available page of first free extent.
If all of the OAM entries are for full allocation units, Adaptive Server searches the global allocation map for an allocation unit with at least one free extent. Adaptive Server adds a new OAM entry for that allocation unit to the object's OAM, allocates a free extent, and uses the first free page on the extent.
Operations like bcp and reorg
rebuild using large scale allocation do not look for free
pages on already allocated extents; instead they allocate full free extents.
Large scale allocation cannot typically use the first extent of
each allocation unit. The first extent only has 7 usable pages because
its first page holds the allocation page structure.