Pointer items are internal file place-keepers that point to the frame where the actual data resides.
Items are normally stored in a file with a few bytes of overhead data, followed by the item-ID, followed by the attributes, and then an end-of-item indicator.
If the size of the item exceeds a given length (approximately 860 bytes for a 1 KB frame system, 1720 bytes for a 2 KB frame system, and 3440 for a 4 KB frame system), then D3 uses a pointer item in the file, which contains the overhead data, the item-ID, and a frame address that points to where the attribute values are stored. Therefore, most of the item’s data resides outside of the file’s primary filespace.
This method increases performance during most AQL functions, as reading pointer items is considerably more efficient than reading the entire item during common functions such as list or sort.
A data file may be declared (at create-time) to contain all pointer items, forcing every entry to be a pointer item. There is no converse nonpointer item declaration.