Data page: The space in the database is divided into logical 8KB pages. These pages are continuously numbered starting with zero, and they can be referenced by specifying a file ID and page number. The page numbering is always continuous such that when SQL Server grows the database file, new pages are numbered starting from the last highest page number in the file plus one. Similarly, when SQL Server shrinks the file, it removes the highest number pages from the file.
Part of page
Part of page
- Page Header: Page Header contains the page ID, the ID of the object it belongs to, the ghosted record count, number of slots in the array, Torn Page info, and much more meta data for managing the page. This consumes 96 bytes of the 8KB page size.
- Page Body: where the records are stored. This is 8KB minus the page header and whatever space the slot array takes.
- Slot Array(Offset Array): Slot Array is an array stored at the end of the page to manage the location of the records on the page. The slot array indicates the logical order of the data rows on the page. If data on a page needs to be sorted in the order of the index key, SQL Server does not physically sort the data rows on the page, but rather it populates the slot array based on the index sort order.