Compression
Compression Info
Pages compressed with PAGE compression have a CI (Compression Info) record after the page header, holding the structures shared by the records on the page.
| Key | Name | Description |
|---|---|---|
00 | Header | Single byte with flags for which structures are present - Has Anchor Record and Has Dictionary |
00 | Page Modification Count | Number of changes to the page since it was compressed, used to decide when the page is worth recompressing |
00 | Size | Total size of the compression info structure including the dictionary. Only present when the page has a dictionary |
00 | Length | Length of the compression info structure up to the end of the anchor record - the dictionary starts at this offset |
00 | Anchor Record | A CD format record holding an anchor value per column. Records on the page store only the difference from the anchor value (column prefix compression) |
00 | Dictionary | Values shared across the page (page dictionary compression). Records reference a dictionary entry by symbol instead of repeating the value |
Dictionary
| Key | Name | Description |
|---|---|---|
00 | Entry Count | Number of entries in the dictionary |
00 | Dictionary Entry Offset Array | Two bytes per entry giving the offset where each dictionary value ends |
00 | Dictionary Value | The shared values, referenced from column descriptors as symbols |