Сжатие данных словаря SQL 2008 - это только для целых совпадений столбцов? - PullRequest
0 голосов
/ 30 октября 2009

Для простоты предположим, у меня есть один 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

Ответы [ 2 ]

0 голосов
/ 13 января 2010

Я забыл упомянуть, что подтвердил, что в дополнение к эмпирическому тестированию я подтвердил это в Microsoft. Да, Сжатие словарных данных предназначено для ВСЕГО столбца или, по крайней мере, только для ПРЕФИКСОВ.

0 голосов
/ 30 октября 2009

См. Реализация сжатия страниц

Как я понимаю, значение 'fox' будет помещено в словарь, а значение словаря заменит всех вхождений на странице, поэтому все строки должны быть затронуты.

Ваши данные хранятся в (n) столбцах varchar или в столбцах XML?

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