sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan aktiveres komprimering på en eksisterende tabel i SQL Server (T-SQL)

Du kan bruge ALTER TABLE sætning for at aktivere komprimering på en eksisterende tabel i SQL Server.

For at gøre dette skal du bruge REBUILD WITH mulighed, mens du angiver din ønskede komprimeringstype.

Eksempel

Her er et eksempel til at demonstrere.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);

I dette tilfælde genopbyggede jeg tabellen ved hjælp af rækkekomprimering.

Følgende genopbygger det med sidekomprimering.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);

Anvend komprimering på en enkelt partition

Hvis din tabel er partitioneret, kan du angive, at den partition skal genopbygges med komprimering.

ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);

Sådan fjerner du komprimering

Du kan fjerne komprimeringen ved at bruge NONE som komprimeringstype.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);

Søjlelagertabeller

Hvis du bruger kolonnelagertabeller (tabeller gemt med et klynget kolonnelagerindeks), gælder ovenstående komprimeringstyper ikke. I dette tilfælde er dine komprimeringsmuligheder COLUMNSTORE og COLUMNSTORE_ARCHIVE .

Begrænsninger/restriktioner

Systemtabeller kan ikke aktiveres til komprimering.

Hvis tabellen er en heap (en tabel uden et klynget indeks), skal genopbygningsoperationen for ONLINE tilstand vil være enkelt gevind. Brug OFFLINE til en multi-threaded heap-genopbygningsoperation tilstand.

Når du bruger partitionerede tabeller, gælder følgende begrænsninger:

  • Du kan ikke ændre komprimeringsindstillingen for en enkelt partition, hvis tabellen har ikke-justerede indekser.
  • ALTER TABLE <table> REBUILD PARTITION ... syntaks genopbygger den angivne partition.
  • ALTER TABLE <table> REBUILD WITH ... syntaks genopbygger alle partitioner.

  1. Ydeevne overraskelser og antagelser:SÆT ANTAL TIL

  2. Oracle:Hvad gør `(+)` i en WHERE-sætning?

  3. gem installation:Kunne ikke bygge gem native extension (kan ikke finde header-filer)

  4. Er det muligt at GRUPPE BY flere kolonner ved hjælp af MySQL?