ALTER TABLE
を使用できます SQLServerの既存のテーブルで圧縮を有効にするステートメント。
これを行うには、REBUILD WITH
を使用する必要があります オプション、希望の圧縮タイプを指定します。
例
実例を示します。
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = ROW);
この場合、行圧縮を使用してテーブルを再構築しました。
以下は、ページ圧縮を使用して再構築します。
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = PAGE);
単一のパーティションに圧縮を適用する
テーブルがパーティション化されている場合は、そのパーティションを指定して圧縮で再構築できます。
ALTER TABLE Cats
REBUILD PARTITION = 1 WITH (DATA_COMPRESSION = ROW);
圧縮を削除する方法
NONE
を使用して圧縮を削除できます 圧縮タイプとして。
ALTER TABLE Cats
REBUILD WITH (DATA_COMPRESSION = NONE);
列ストアテーブル
列ストアテーブル(クラスター化された列ストアインデックスで保存されたテーブル)を使用している場合、上記の圧縮タイプは適用されません。この場合、圧縮オプションはCOLUMNSTORE
です。 およびCOLUMNSTORE_ARCHIVE
。
制限/制限
システムテーブルの圧縮を有効にすることはできません。
テーブルがヒープ(クラスター化インデックスのないテーブル)の場合、ONLINE
の再構築操作 モードはシングルスレッドになります。マルチスレッドヒープ再構築操作の場合は、OFFLINE
を使用します モード。
また、パーティションテーブルを使用する場合は、次の制限が適用されます。
- テーブルに整列されていないインデックスがある場合、単一のパーティションの圧縮設定を変更することはできません。
-
ALTER TABLE <table> REBUILD PARTITION ...
構文は、指定されたパーティションを再構築します。 -
ALTER TABLE <table> REBUILD WITH ...
構文はすべてのパーティションを再構築します。