Можете да използвате ALTER TABLE
израз за активиране на компресиране на съществуваща таблица в SQL Server.
За да направите това, трябва да използвате REBUILD WITH
опция, като посочвате желания тип компресия.
Пример
Ето пример за демонстрация.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
В този случай възстанових таблицата, използвайки компресия на редове.
Следното го възстановява с компресия на страница.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
Прилагане на компресия към един дял
Ако таблицата ви е разделена на дялове, можете да посочите този дял за повторно изграждане с компресия.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
Как да премахнете компресията
Можете да премахнете компресията, като използвате NONE
като тип компресия.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
Таблици с колони
Ако използвате таблици в columnstore (таблици, съхранявани с клъстериран индекс на columnstore), горните типове компресия не се прилагат. В този случай вашите опции за компресиране са COLUMNSTORE
и COLUMNSTORE_ARCHIVE
.
Ограничения/Ограничения
Системните таблици не могат да бъдат активирани за компресиране.
Ако таблицата е купчина (таблица без клъстериран индекс), операцията за повторно изграждане за ONLINE
режимът ще бъде еднопоточно. За операция за повторно изграждане на многонишкова купчина използвайте OFFLINE
режим.
Също така, когато използвате разделени таблици, се прилагат следните ограничения:
- Не можете да промените настройката за компресиране на един дял, ако таблицата има неподравнени индекси.
ALTER TABLE <table> REBUILD PARTITION ...
синтаксис възстановява посочения дял.ALTER TABLE <table> REBUILD WITH ...
синтаксисът възстановява всички дялове.