SSブログ

SQL Server 2008R2 データ圧縮 その⑤ [DBMS]

今回は性能的な話ではなく、ちょっとした注意点です。
D010TAB中身.jpg
例えばこのテーブルにはクラスターインデックスがあります。
D010TAB_0_General.jpg
このクラスターインデックスを圧縮すると、
クラスタインデックスを圧縮.jpg
クラスターインデックスが圧縮されますが、テーブル本体も圧縮されます。
本体も圧縮.jpg
クラスターインデックスはテーブル本体の列と物理的に同じ場所にあるので、どちらかを圧縮すれば、必然的に両方とも圧縮されます。

テーブルを圧縮 → クラスタインデックスも圧縮
クラスタインデックスを圧縮 → テーブル本体も圧縮
非クラスタインデックスを圧縮 → 非クラスタインデックスのみ圧縮

以下の様にテーブル全てのインデックスを圧縮する場合、このテーブルのインデックスにクラスターインデックスが含まれている場合にはインデックスだけでなく、テーブル本体も圧縮されます。

ALTER INDEX all ON テーブル BUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_PAGE_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, ONLINE = OFF, SORT_IN_TEMPDB = OFF, DATA_COMPRESSION = ROW又はPAGE)

インデックスだけ圧縮したつもりが、テーブルも圧縮されていたという事が起こり得るのでご注意。
逆にインデックスだけ圧縮解除したつもりが、テーブル本体も圧縮解除されていたという事もあるかも。

nice!(1)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。