So-net無料ブログ作成

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

前回はどの程度圧縮されるかというのを見てみました。
今回は性能面ではどうかという事で検索性能を見てみようと思います。
まずは対象にしたテーブルです。
カラムは2つ両方とも可変帳の文字列です。
D010TAB_COLUMNS.jpg
一応インデックスが2つあります。
D010TAB_INDEXES.jpg
まずはじめに圧縮なしの状態で検索してみます。
D010TAB.jpg
インデックスも圧縮なしです。
D010TAB_0.jpg
D010TAB_1.jpg
このテーブルを単純に検索します。
結果を画面に出すとその分遅くなるのでNULデバイスに出力して表示しない様にしています。
結果、圧縮なしで約2分15秒で検索が終了しました。
NO圧縮検索1-3.jpg
次に、このテーブルとインデックスをROW圧縮します。
ROW圧縮変換.jpg
ROW圧縮した状態で、先ほどと同じ単純な検索をします。
結果、ROW圧縮で約2分7秒でした。
ROW圧縮検索1-3.jpg
さらにPAGE圧縮します。
PAGE圧縮変換.jpg
PAGE圧縮でも同じ様に単純な検索をします。
結果、PAGE圧縮で約2分15秒でした。
PAGE圧縮検索1-3.jpg
結果として、このテーブルの場合は検索時間にほぼ差は出ませんでした。
[単一検索]
NONE 約2分15秒
ROW 約2分7秒
PAGE 約2分15秒

ちなみに、各状態でのテーブル容量は以下でした。
[テーブル容量]
NONE 3,715,288kバイト
ROW 2,068,416kバイト
PAGE 775,984kバイト

これではよく解からないのでもう少し負荷をかけて、検索を2並列にして計測してみます。
圧縮なし 約2分26秒
NO圧縮検索2-3.jpg
ROW圧縮 約3分53秒
ROW圧縮検索2-3.jpg
PAGE圧縮 約4分9秒
PAGE圧縮検索2-3.jpg
圧縮なし < ROW < PAGE で次第に長くなってきています。
[2並列検索]
NONE 約2分26秒
ROW 約3分53秒
PAGE 約4分9秒

この時のサーバ側のタスクマネージャーの画面があるので載せておきます。
圧縮なし
NO圧縮検索2-2.jpg
ROW圧縮
ROW圧縮検索2-2.jpg
PAGE圧縮
PAGE圧縮検索2-2.jpg
CPU利用率はそれほど変わらないのですが、メモリ使用量は圧縮が進むに従って少なくなっているのが分かります。

圧縮されているとディスクやメモリの使用量がだいぶ減りますが、伸張の負荷がそれほど影響は大きくはないとはいえ、出てきます。
可変長の項目でもROW圧縮でそれなりに圧縮されているのはちょっと意外でした。

ちなみに4並列にすると以下になります。
[4並列検索]
NONE 約5分28秒
ROW 約5分27秒
PAGE 約5分42秒

…あくまで一例です…

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

nice! 1

コメント 5

aki-aoki

テーブルのサイズは sp_MStablespace を使って調べたもので、単位はkBでしたので修正しました。
by aki-aoki (2011-06-25 18:58) 

通りすがり

全データ抽出ではなく、数件のデータを抽出する際の速度差を知りたいですね。
by 通りすがり (2011-11-30 22:29) 

aki-aoki

テストに使用したテーブルにあったデータは検索条件を付けて検索するにはあまり向いてないデータだったのであきらめました。
単一行を抽出する事は出来ますが、それだと早すぎて比較にならない。

テストデータを用意するというのはけっこう難しい。

by aki-aoki (2011-12-01 01:03) 

ガーフィー

とても参考になりました。
今、100GB/日、で増加していくDBを抱えていて、何らかの対応をしないと、あと1ヶ月で、本番機がダウンしてしまうので、PAGE圧縮を試してみます。
by ガーフィー (2012-04-26 04:51) 

aki-aoki

ガーフィー さんコメントありがとうございます。
100GB/日の増加とは、えらくヘビーですね。

ちなみに、このページではテーブルを圧縮した後に全インデックスを圧縮していますが、クラスタ化インデックスがある場合はインデックスだけを圧縮すれば、テーブルも圧縮されます。
クラスタ化インデックスとデータは物理的に同じ場所にあるのでどちらかで良いし、別の圧縮は出来ない。

データが多いと二度手間は避けたいところです。
by aki-aoki (2012-04-27 00:40) 

コメントを書く

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

トラックバック 0

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。