Microsoft SQL Server 2012 Internals: Special Storage
This chapter looked at how SQL Server stores data that doesn’t use the typical FixedVar record format and data that doesn’t fit into the usual 8 KB data page.
This chapter discussed row-overflow and large object data, which is stored on its own separate pages, and FILESTREAM data, which is stored outside SQL Server, in files in the file system. You also read about FileTables, which allow FILESTREAM data to be accessed and manipulated through SQL Server tables.
Some special storage capabilities in SQL Server 2012 require that you look at row storage in a completely different way. Sparse columns allow you to have very wide tables of up to 30,000 columns, as long as most of those columns are NULL in most rows. Each row in a table containing sparse columns has a special descriptor field that provides information about which columns are non-NULL for that particular row.
This chapter also described the row storage format used with compressed data. Data can be compressed at either the row level or the page level, and the rows and pages themselves describe the data that is contained therein. This type of row format is referred to as the CD format.
Finally, you looked at partitioning of tables and indexes. Although partitioning doesn’t really require a special format for your rows and pages, it does require accessing the metadata in a special way.