U kunt de ALTER TABLE
. gebruiken statement om compressie op een bestaande tabel in SQL Server in te schakelen.
Om dit te doen, moet je de REBUILD WITH
. gebruiken optie, terwijl u uw gewenste compressietype specificeert.
Voorbeeld
Hier is een voorbeeld om te demonstreren.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
In dit geval heb ik de tabel opnieuw opgebouwd met behulp van rijcompressie.
Het volgende herbouwt het met paginacompressie.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
Compressie toepassen op een enkele partitie
Als je tabel gepartitioneerd is, kun je die partitie specificeren om met compressie opnieuw op te bouwen.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
Compressie verwijderen
U kunt de compressie verwijderen met NONE
als het compressietype.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
Kolomopslagtabellen
Als u columnstore-tabellen gebruikt (tabellen die zijn opgeslagen met een geclusterde columnstore-index), zijn de bovenstaande compressietypen niet van toepassing. In dit geval zijn uw compressie-opties COLUMNSTORE
en COLUMNSTORE_ARCHIVE
.
Beperkingen/beperkingen
Systeemtabellen kunnen niet worden ingeschakeld voor compressie.
Als de tabel een heap is (een tabel zonder een geclusterde index), moet de herbouwbewerking voor ONLINE
modus zal single threaded zijn. Gebruik OFFLINE
. voor het opnieuw opbouwen van een heap met meerdere threads modus.
Bij gebruik van gepartitioneerde tabellen zijn ook de volgende beperkingen van toepassing:
- Je kunt de compressie-instelling van een enkele partitie niet wijzigen als de tabel niet-uitgelijnde indexen heeft.
- De
ALTER TABLE <table> REBUILD PARTITION ...
syntaxis herbouwt de opgegeven partitie. - De
ALTER TABLE <table> REBUILD WITH ...
syntaxis herbouwt alle partities.