Możesz użyć ALTER TABLE
instrukcja, aby włączyć kompresję w istniejącej tabeli w SQL Server.
Aby to zrobić, musisz użyć REBUILD WITH
opcji, określając żądany typ kompresji.
Przykład
Oto przykład do zademonstrowania.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
W tym przypadku przebudowałem tabelę za pomocą kompresji wierszy.
Poniżej odbudowuje go z kompresją strony.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
Zastosuj kompresję do pojedynczej partycji
Jeśli twoja tabela jest podzielona na partycje, możesz określić, że partycja ma zostać odbudowana z kompresją.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
Jak usunąć kompresję
Możesz usunąć kompresję, używając NONE
jako typ kompresji.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
Tabele kolumnowe
Jeśli używasz tabel magazynu kolumn (tabele przechowywane z klastrowanym indeksem magazynu kolumn), powyższe typy kompresji nie mają zastosowania. W tym przypadku twoje opcje kompresji to COLUMNSTORE
i COLUMNSTORE_ARCHIVE
.
Ograniczenia/ograniczenia
Nie można włączyć kompresji tabel systemowych.
Jeśli tabela jest stertą (tabelą bez indeksu klastrowego), operacja przebudowy dla ONLINE
tryb będzie jednowątkowy. W przypadku wielowątkowej operacji odbudowy sterty użyj OFFLINE
tryb.
Ponadto podczas korzystania z tabel partycjonowanych obowiązują następujące ograniczenia:
- Nie możesz zmienić ustawień kompresji pojedynczej partycji, jeśli tabela ma niewyrównane indeksy.
ALTER TABLE <table> REBUILD PARTITION ...
składnia odbudowuje określoną partycję.ALTER TABLE <table> REBUILD WITH ...
składnia odbudowuje wszystkie partycje.