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

Come abilitare la compressione su una tabella esistente in SQL Server (T-SQL)

Puoi usare ALTER TABLE istruzione per abilitare la compressione su una tabella esistente in SQL Server.

Per fare ciò, devi usare REBUILD WITH opzione, specificando il tipo di compressione desiderato.

Esempio

Ecco un esempio da dimostrare.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);

In questo caso ho ricostruito la tabella usando la compressione delle righe.

Quanto segue lo ricostruisce con la compressione della pagina.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);

Applica la compressione a una singola partizione

Se la tua tabella è partizionata, puoi specificare quella partizione da ricostruire con la compressione.

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

Come rimuovere la compressione

Puoi rimuovere la compressione utilizzando NONE come tipo di compressione.

ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);

Tabelle Colonnine

Se utilizzi tabelle columnstore (tabelle archiviate con un indice columnstore cluster), i tipi di compressione sopra indicati non si applicano. In questo caso, le tue opzioni di compressione sono COLUMNSTORE e COLUMNSTORE_ARCHIVE .

Limiti/Restrizioni

Le tabelle di sistema non possono essere abilitate per la compressione.

Se la tabella è un heap (una tabella senza un indice cluster), l'operazione di ricostruzione per ONLINE la modalità sarà a thread singolo. Per un'operazione di ricostruzione dell'heap multi-thread, utilizzare OFFLINE modalità.

Inoltre, quando si utilizzano tabelle partizionate, si applicano le seguenti restrizioni:

  • Non puoi modificare l'impostazione di compressione di una singola partizione se la tabella ha indici non allineati.
  • La ALTER TABLE <table> REBUILD PARTITION ... la sintassi ricostruisce la partizione specificata.
  • Il ALTER TABLE <table> REBUILD WITH ... la sintassi ricostruisce tutte le partizioni.