SQL Server 2016. Compress и Decompress

SQL Server 2016. Compress и Decompress

Рассмотрим ещё одну новую возможность, которая появилась в SQL Server 2016 CTP 3.1. Это встроенная поддержка сжатия GZIP: COMPRESS и DECOMPRESS.

В данной статье я попробую оценить эффективность использования встроенного сжатия. Посмотрим, какой объём занимают сжатые данные и оценим время, которое SQL Server тратит на сжатие и извлечение данных.

Для начала убедитесь, что вы используете SQL Server 2016 CTP 3.1 и выше. Я использую Microsoft SQL Server 2016 (CTP3.2) — 13.0.900.73 (X64)   Dec 10 2015 18:49:31   Copyright (c) Microsoft Corporation  Enterprise Evaluation Edition (64-bit) on Windows 10 Enterprise 6.3 <X64> (Build 10586: ).

Создадим 2 таблицы:

1
2
3
4
5
6
7
--Простая таблица с текстовым полем
create table SimpleTable ( val varchar(max) );
go
--Таблица с GZIP
create table SimpleTableGZIP ( val varbinary(max) );
go

Наполним данными:

1
2
3
4
5
6
7
8
9
--SIMPLE
insert into SimpleTable
select replicate('A', 10000);
go 1000
--GZIP
insert into SimpleTableGZIP
select compress ( replicate('A', 10000) );
go 1000

Теперь сравним их объём:

1
2
3
4
5
6
7
8
select object_name( object_id ) table_name
     , reserved_page_count
     , ( reserved_page_count ) * 8. sizeKb
     , row_count
  from sys.dm_db_partition_stats
  where object_id in ( object_id( 'SimpleTable' )
                     , object_id( 'SimpleTableGZIP' )
                     );

А теперь небольшой тест на скорость вставки:

1
2
3
4
5
6
7
8
9
10
set statistics time on;
go
insert into SimpleTable
select t1.name + t2.name from sys.all_objects t1, sys.all_objects t2;
go
insert into SimpleTableGZIP
select compress ( t1.name + t2.name ) from sys.all_objects t1, sys.all_objects t2;
go
set statistics time off;
go

И тест на извлечение данных:

1
2
3
4
5
6
7
8
9
10
set statistics time on;
go
select * into #t1
  from SimpleTable
go
select decompress(val) val into #t2
  from SimpleTableGZIP;
go
set statistics time off;
go

Автор: Alexey Knyazev

***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***
Полезные Скрипты

Рубрика Проверь себя

Ссылка на наш канал YouTube

Запись опубликована в рубрике Полезно и интересно с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: