Из MSDN (мой жирный)
SQL Server Database Engine использует
ключевое слово SPARSE в столбце
определение для оптимизации хранения
значения в этом столбце. Следовательно, когда
значение столбца NULL для любой строки
в таблице значения не требуют
хранение.
Обратное значение будет NON-null, что означает «всегда хранить значение» = байты, используемые со следующим условием:
Разреженные столбцы требуют больше памяти
пространство для ненулевых значений, чем
пространство, необходимое для идентичных данных, которые
не помечен как SPARSE.
.. и следующая таблица в MSDN показывает +4 байта на разреженный столбец
Извините, если это звучит грубо, но что еще вы ожидаете?
И хорошее резюме SPARSE здесь