text, image, and Java off-row columns (LOB columns) for a table are stored as a separate data structure, consisting of a set of pages. Each table with a text or image column has one of these structures. If a table has multiple LOB columns, it still has only one of these separate data structures.
The table itself stores a 16-byte pointer to the first page of the value for the row. Additional pages for the value are linked by next and previous pointers. Each value is stored in its own, separate page chain. The first page stores the number of bytes in the text value. The last page in the chain for a value is terminated with a null next-page pointer.
Reading or writing a LOB value requires at least two page reads or writes:
One for the pointer
One for the actual location of the text in the text object
Each LOB page stores up to 1800 bytes. Every non-null value uses at least one full page.
LOB structures are listed separately in sysindexes. The ID for the LOB structure is the same as the table’s ID. The index ID column is indid and is always 255, and the name is the table name, prefixed with the letter “t”.