Vous pouvez utiliser le ALTER TABLE
pour activer la compression sur une table existante dans SQL Server.
Pour ce faire, vous devez utiliser le REBUILD WITH
option, tout en spécifiant le type de compression souhaité.
Exemple
Voici un exemple pour illustrer.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
Dans ce cas, j'ai reconstruit la table en utilisant la compression de lignes.
Ce qui suit le reconstruit avec la compression de page.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
Appliquer la compression à une seule partition
Si votre table est partitionnée, vous pouvez spécifier cette partition à reconstruire avec compression.
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
Comment supprimer la compression
Vous pouvez supprimer la compression en utilisant NONE
comme type de compression.
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
Tableaux du magasin de colonnes
Si vous utilisez des tables columnstore (tables stockées avec un index cluster columnstore), les types de compression ci-dessus ne s'appliquent pas. Dans ce cas, vos options de compression sont COLUMNSTORE
et COLUMNSTORE_ARCHIVE
.
Limites/restrictions
Les tables système ne peuvent pas être activées pour la compression.
Si la table est un tas (une table sans index clusterisé), l'opération de reconstruction pour ONLINE
le mode sera monothread. Pour une opération de reconstruction de tas multithread, utilisez OFFLINE
mode.
De plus, lors de l'utilisation de tables partitionnées, les restrictions suivantes s'appliquent :
- Vous ne pouvez pas modifier le paramètre de compression d'une seule partition si la table comporte des index non alignés.
- La
ALTER TABLE <table> REBUILD PARTITION ...
la syntaxe reconstruit la partition spécifiée. - Le
ALTER TABLE <table> REBUILD WITH ...
la syntaxe reconstruit toutes les partitions.