Почему ненулевые значения в разреженных столбцах занимают дополнительное место в SQL Server 2008 - PullRequest
3 голосов
/ 11 августа 2010

Могу ли я узнать, почему разреженные столбцы, имеющие ненулевые значения, занимают 4 байта дополнительного пространства ... Я выясняю, почему он занимает 4 байта дополнительного пространства .. Пожалуйста, помогите мне?*

1 Ответ

2 голосов
/ 11 августа 2010

Из MSDN (мой жирный)

SQL Server Database Engine использует ключевое слово SPARSE в столбце определение для оптимизации хранения значения в этом столбце. Следовательно, когда значение столбца NULL для любой строки в таблице значения не требуют хранение.

Обратное значение будет NON-null, что означает «всегда хранить значение» = байты, используемые со следующим условием:

Разреженные столбцы требуют больше памяти пространство для ненулевых значений, чем пространство, необходимое для идентичных данных, которые не помечен как SPARSE.

.. и следующая таблица в MSDN показывает +4 байта на разреженный столбец

Извините, если это звучит грубо, но что еще вы ожидаете?

И хорошее резюме SPARSE здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...