Du kan använda ALTER TABLE
för att möjliggöra komprimering av en befintlig tabell i SQL Server.
För att göra detta måste du använda REBUILD WITH
alternativet samtidigt som du anger önskad komprimeringstyp.
Exempel
Här är ett exempel att visa.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
I det här fallet byggde jag om tabellen med hjälp av radkomprimering.
Följande bygger om den med sidkomprimering.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
Tillämpa komprimering på en enskild partition
Om din tabell är partitionerad kan du ange att den partitionen ska byggas om med komprimering.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
Hur man tar bort komprimering
Du kan ta bort komprimeringen genom att använda NONE
som komprimeringstyp.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
Columnstore-tabeller
Om du använder kolumnlagertabeller (tabeller lagrade med ett klustrat kolumnlagerindex) gäller inte ovanstående komprimeringstyper. I det här fallet är dina komprimeringsalternativ COLUMNSTORE
och COLUMNSTORE_ARCHIVE
.
Begränsningar/Restriktioner
Systemtabeller kan inte aktiveras för komprimering.
Om tabellen är en hög (en tabell utan ett klustrat index), återuppbyggnadsoperationen för ONLINE
läget kommer att vara enkelgängat. Använd OFFLINE
för en återuppbyggnad av flera trådar läge.
Dessutom gäller följande begränsningar när du använder partitionerade tabeller:
- Du kan inte ändra komprimeringsinställningen för en enskild partition om tabellen har ojusterade index.
ALTER TABLE <table> REBUILD PARTITION ...
syntax bygger om den angivna partitionen.ALTER TABLE <table> REBUILD WITH ...
syntax bygger om alla partitioner.