SQL Server 2008R2 データ圧縮 その⑤ [DBMS]
今回は性能的な話ではなく、ちょっとした注意点です。
例えばこのテーブルにはクラスターインデックスがあります。
このクラスターインデックスを圧縮すると、
クラスターインデックスが圧縮されますが、テーブル本体も圧縮されます。
クラスターインデックスはテーブル本体の列と物理的に同じ場所にあるので、どちらかを圧縮すれば、必然的に両方とも圧縮されます。
テーブルを圧縮 → クラスタインデックスも圧縮
クラスタインデックスを圧縮 → テーブル本体も圧縮
非クラスタインデックスを圧縮 → 非クラスタインデックスのみ圧縮
以下の様にテーブル全てのインデックスを圧縮する場合、このテーブルのインデックスにクラスターインデックスが含まれている場合にはインデックスだけでなく、テーブル本体も圧縮されます。
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)
インデックスだけ圧縮したつもりが、テーブルも圧縮されていたという事が起こり得るのでご注意。
逆にインデックスだけ圧縮解除したつもりが、テーブル本体も圧縮解除されていたという事もあるかも。
例えばこのテーブルにはクラスターインデックスがあります。
このクラスターインデックスを圧縮すると、
クラスターインデックスが圧縮されますが、テーブル本体も圧縮されます。
クラスターインデックスはテーブル本体の列と物理的に同じ場所にあるので、どちらかを圧縮すれば、必然的に両方とも圧縮されます。
テーブルを圧縮 → クラスタインデックスも圧縮
クラスタインデックスを圧縮 → テーブル本体も圧縮
非クラスタインデックスを圧縮 → 非クラスタインデックスのみ圧縮
以下の様にテーブル全てのインデックスを圧縮する場合、このテーブルのインデックスにクラスターインデックスが含まれている場合にはインデックスだけでなく、テーブル本体も圧縮されます。
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)
インデックスだけ圧縮したつもりが、テーブルも圧縮されていたという事が起こり得るのでご注意。
逆にインデックスだけ圧縮解除したつもりが、テーブル本体も圧縮解除されていたという事もあるかも。
コメント 0