I wrote: > The reason for 2x fetches is that Firebird identifies a record through a > slot in a vector on the data page - both the page and the slot are part of > the RDB$DB_KEY. The page is identified indirectly through an index of > pages for the table. The values in the vector on the data page are the > length of the stored record and the offset on the page of the first byte of > the record. >
Going through a record locator vector means that records can move within a page without affecting anything off the page, so it's very cheap to repack a page to reclaim fragments of space. But you already figured that out yourselves.... Cheers, Ann
