●SQL Server 2008 のわかりやすい特徴の一つが、圧縮機能
二つの圧縮機能
河端善博氏のブログを拝見しました。《河端善博ブログ》SQL Server 2008 のデータ圧縮機能 ! は、今回の CTP に間に合わず 【引用】
SQL Server 2008 のわかりやすい特徴の一つが、圧縮機能。
●バックアップ圧縮 (CTP 5, Released)
●データ圧縮 (CTP 6)
「バックアップ圧縮」は、市販のバックアップツールに、すでに広く使われている技術ですので、特に驚くことではありません。●バックアップ圧縮 (CTP 5, Released)
●データ圧縮 (CTP 6)
「データ圧縮」、これは、面白いですね。
新機能「データ圧縮」
通常の『圧縮』機能と言いますと、次の二つをいいます。(1)ファイル(&フォルダ)の無駄を減らして、サイズを小さくする。
(2)複数のファイル(&フォルダ)を一つにまとめ、扱いやすくする。
SQL Server 2008 の「データ圧縮」は、データベースの無駄をなくす作業のことをいいます(当たり前ですね(^_^;)。
SQL Server 2008 の「データ圧縮」の種類は二つ。
(A)ROW / 行単位の圧縮
(B)PAGE / ページ単位の圧縮
《河端善博ブログ》SQL Server 2008 のデータ圧縮機能 ! は、今回の CTP に間に合わず 【引用】
ROW/ 行単位での圧縮では、行内の無駄なスペースを削減します。
わかりやすい例として、char(8000) の列に 'a' と入っている場合を考えます。
char は、固定長のデータ型ですので、8000 バイトのスペースを消費します。
つまり、8000 - 1 = 7999 バイトは無駄にスペースが入っています。
ROW 圧縮では、この 7999 バイトの部分を埋めてしまいます。
わかりやすい例として、char(8000) の列に 'a' と入っている場合を考えます。
char は、固定長のデータ型ですので、8000 バイトのスペースを消費します。
つまり、8000 - 1 = 7999 バイトは無駄にスペースが入っています。
ROW 圧縮では、この 7999 バイトの部分を埋めてしまいます。
ページの場合は、データ内に同じ値が繰り返し出現する場合に、値を一回だけ保存します。
たとえば、'Osaka' という値が、10000 行に入っているとします。
この場合、'Osaka' という値をひとつだけ、保存し、レコードの値としては、値へのポインタに変換します。
たとえば、'Osaka' という値が、10000 行に入っているとします。
この場合、'Osaka' という値をひとつだけ、保存し、レコードの値としては、値へのポインタに変換します。

