Для простоты предположим, у меня есть один varchar (50) на строку, и это мои строки:
1) Быстрая коричневая лиса перепрыгивает через ленивую собаку
2) я люблю бурых лис
3) лиса
4) лиса
Таким образом, сжатие страницы найдет, например, слово fox и поместит его в словарь. Получат ли выгоды только строки 3 и 4, а строки 1 и 2 - нет, потому что они также содержат другие данные? Это то, что, кажется, происходит эмпирически. У меня есть куча данных XML с сильно повторяющимися сегментами (угловые скобки, повторяющиеся имена атрибутов и т. Д.), Которые фантастически сжимаются, если я сохраняю их в CSV-файл и заархивирую их как контрольный случай, но у меня на SQL-сервере сжатие почти 0%. Я подтвердил, что некоторое НЕКОТОРЫЕ сжатие имеет место, посмотрев на sys.dm_db_index_physical_stats page_count и compress_page_count, поэтому я знаю, что в моей структуре нет ничего, что вообще мешало бы сжатию, как слишком большие строки.
Пример здесь включает в себя только целые столбцы, а не подмножества, поэтому я и спрашиваю явно.
http://blogs.msdn.com/sqlserverstorageengine/archive/2008/01/18/details-on-page-compression-page-dictionary.aspx