Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So aktivieren Sie die Komprimierung für eine vorhandene Tabelle in SQL Server (T-SQL)

Sie können die ALTER TABLE verwenden -Anweisung zum Aktivieren der Komprimierung für eine vorhandene Tabelle in SQL Server.

Dazu müssen Sie den REBUILD WITH verwenden Option, während Sie den gewünschten Komprimierungstyp angeben.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);

In diesem Fall habe ich die Tabelle mithilfe der Zeilenkomprimierung neu erstellt.

Im Folgenden wird es mit Seitenkomprimierung neu erstellt.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);

Komprimierung auf eine einzelne Partition anwenden

Wenn Ihre Tabelle partitioniert ist, können Sie angeben, dass diese Partition mit Komprimierung neu aufgebaut werden soll.

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

Komprimierung entfernen

Sie können die Komprimierung entfernen, indem Sie NONE verwenden als Komprimierungstyp.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);

Columnstore-Tabellen

Wenn Sie Columnstore-Tabellen verwenden (Tabellen, die mit einem gruppierten Columnstore-Index gespeichert sind), gelten die oben genannten Komprimierungstypen nicht. In diesem Fall sind Ihre Komprimierungsoptionen COLUMNSTORE und COLUMNSTORE_ARCHIVE .

Einschränkungen/Einschränkungen

Systemtabellen können nicht für die Komprimierung aktiviert werden.

Wenn die Tabelle ein Heap ist (eine Tabelle ohne einen gruppierten Index), der Neuerstellungsvorgang für ONLINE Modus wird Single-Thread sein. Verwenden Sie für einen Heap-Wiederherstellungsvorgang mit mehreren Threads OFFLINE Modus.

Außerdem gelten bei der Verwendung von partitionierten Tabellen die folgenden Einschränkungen:

  • Sie können die Komprimierungseinstellung einer einzelnen Partition nicht ändern, wenn die Tabelle nicht ausgerichtete Indizes hat.
  • Die ALTER TABLE <table> REBUILD PARTITION ... Syntax baut die angegebene Partition neu auf.
  • Der ALTER TABLE <table> REBUILD WITH ... Syntax baut alle Partitionen neu auf.