Я экспериментировал со сжатием в SQL Server, но до сих пор не увидел ожидаемых результатов.
Для тестирования я создал новую таблицу с одним столбцом VARCHAR(8000)
и вставил в нее 100 тыс. Строк.Каждая строка содержит около 500 слов текста, что при сжатии ZIP позволяет сэкономить более 90% пространства.
Я использую команду EXEC sp_estimate_data_compression_savings 'dbo', 'MyTable', NULL, NULL, 'PAGE' ;
, чтобы проверить, сколько места будет сэкономлено при использовании сжатия PAGE, но этоговорит мне, что не будет много вообще.Результаты выглядят следующим образом:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB) sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
MyTable dbo 0 1 94048 93440 40064 39808
Что, по сути, вообще не экономит.Куда я иду не так?
пс.Я пытался провести тот же эксперимент со столбцом NVARCHAR(4000)
, и сжатие там показывает экономию, но я считаю, что это связано с тем, что сжатие заставляет использовать 1 символ вместо двух, когда данные не требуют 2 символов.На самом деле он не сжимает данные так, как это делает ZIP.