sql >> Database >  >> RDS >> Sqlserver

Compressie inschakelen op een bestaande tabel in SQL Server (T-SQL)

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.

  1. YEAR() Voorbeelden – MySQL

  2. Is het nodig om DbCommand na gebruik weg te gooien?

  3. Dimensies van dimensies:een blik op de meest voorkomende dimensionale tabeltypen van datawarehousing

  4. Hoe geef ik letterlijk de datum op bij het schrijven van SQL-query's vanuit SQL Server die is gekoppeld aan Oracle?