NULLs for variable-length columns are stored in the NULL raster file that is present in each record with a minimum SQL Server 2000 value: no space is used for the column itself. (Edit: 2 bytes for a length that will be zero, of course)
For fixed-length columns, a NULL raster value means that no sentinel value is required in the space for holding a fixed-length column.
Index rejection, NULL comparisons may be faster because of this and because comparisons with NULL are always UNKNOWN (which drops to false)
Edit:
Paul Randall Inside the storage engine: The anatomy of the record , which shows the structure on disk +, explains the optimization of the zero bitmap + as fixed and variable-length columns are saved
Edit 2: read the question again ...
From a storage point of view, a NULL bitmap might not be an optimization because it adds a byte (or more). However, in practice, he avoids a lot of processing to find NULL values.
source share