SQL Server 2008R2 データ圧縮 その④ [DBMS]
前回は検索性能を見てみました。
メモリの使用量に違いはあったものの、時間的には大差ない結果でした。
今回は挿入を見てみます。
検索で使ったテーブル D010TAB と同じ構造のテーブル ZD010TAB を作って、
create table sms.ZD010TAB ( MASTER nvarchar(40) not null, TABNAME nvarchar(30) not null);
そこに insert into select で D010TAB の内容を ZD010TAB へ挿入します。
insert into [sms].[ZD010TAB] select * from [sms].[D010TAB];
挿入されるテーブルは予め空にしてから圧縮タイプを変更して、圧縮タイプでどう変わるか見てみます。
truncate table sms.ZD010TAB;
ALTER TABLE [sms].[ZD010TAB] REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = ROW );
コピー元のテーブル D010TAB は圧縮なしで実施します。
まずは圧縮なしでの結果です。約3分19秒
続いてROW圧縮です。約2分54秒
さらにPAGE圧縮です。約2分41秒
今回の結果は圧縮が進むにつれて微妙に早くなってますが、ほぼ変わらない結果になりました。
[単一挿入]
NONE 約3分19秒
ROW 約2分54秒
PAGE 約2分41秒
これだけではつまらないので、もう1つ同じテーブルを作って、2テーブル同時挿入をしてみました。
Z2D010TAB を作り、同じ様に挿入します。
create table sms.Z2D010TAB ( MASTER nvarchar(40) not null, TABNAME nvarchar(30) not null);
圧縮なしです。 約3分39秒
ROW圧縮です。約2分58秒
PAGE圧縮です。約2分58秒
圧縮ありの方が早く終了しています。
[2並列挿入]
NONE 約3分39秒
ROW 約2分58秒
PAGE 約2分58秒
今回のテーブルの場合、圧縮なしの方が多くメモリを使用するのが影響しているのではないかと思います。
実際SQLServerのメモリは4GB固定にしているのですが、圧縮なしの方が早くにMAXに到達しています。
圧縮なし
ROW圧縮
PAGE圧縮
圧縮ありなしやタイプでそれほどの差は出ない様ですが、扱うデータが大きいと圧縮した方が少し早くなる感じです。
メモリの使用量に違いはあったものの、時間的には大差ない結果でした。
今回は挿入を見てみます。
検索で使ったテーブル D010TAB と同じ構造のテーブル ZD010TAB を作って、
create table sms.ZD010TAB ( MASTER nvarchar(40) not null, TABNAME nvarchar(30) not null);
そこに insert into select で D010TAB の内容を ZD010TAB へ挿入します。
insert into [sms].[ZD010TAB] select * from [sms].[D010TAB];
挿入されるテーブルは予め空にしてから圧縮タイプを変更して、圧縮タイプでどう変わるか見てみます。
truncate table sms.ZD010TAB;
ALTER TABLE [sms].[ZD010TAB] REBUILD PARTITION = ALL WITH ( DATA_COMPRESSION = ROW );
コピー元のテーブル D010TAB は圧縮なしで実施します。
まずは圧縮なしでの結果です。約3分19秒
続いてROW圧縮です。約2分54秒
さらにPAGE圧縮です。約2分41秒
今回の結果は圧縮が進むにつれて微妙に早くなってますが、ほぼ変わらない結果になりました。
[単一挿入]
NONE 約3分19秒
ROW 約2分54秒
PAGE 約2分41秒
これだけではつまらないので、もう1つ同じテーブルを作って、2テーブル同時挿入をしてみました。
Z2D010TAB を作り、同じ様に挿入します。
create table sms.Z2D010TAB ( MASTER nvarchar(40) not null, TABNAME nvarchar(30) not null);
圧縮なしです。 約3分39秒
ROW圧縮です。約2分58秒
PAGE圧縮です。約2分58秒
圧縮ありの方が早く終了しています。
[2並列挿入]
NONE 約3分39秒
ROW 約2分58秒
PAGE 約2分58秒
今回のテーブルの場合、圧縮なしの方が多くメモリを使用するのが影響しているのではないかと思います。
実際SQLServerのメモリは4GB固定にしているのですが、圧縮なしの方が早くにMAXに到達しています。
圧縮なし
ROW圧縮
PAGE圧縮
圧縮ありなしやタイプでそれほどの差は出ない様ですが、扱うデータが大きいと圧縮した方が少し早くなる感じです。
コメント 0