各レンジ内のキー値が次第に減少する場合に最適な非対称分割を行う
最後のページが
分割される場合
ブランク・ページです
©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 83
表/索引の圧縮
表/索引を圧縮可能
表圧縮(V9.5以降)
索引圧縮(V9.7以降)
圧縮のメリット/デメリットを考慮して圧縮する/しないを選択
一般的には、IOバウンドとなるウェアハウス系は圧縮向き
CPUバウンドとなるオンライントランザクション系は圧縮は必要としない場合が多い
メリット:ディスク容量の削減
IO量の減少によるパフォーマンスの向上 バッファープールヒット率の向上
デメリット:圧縮/解凍にCPU負荷がかかる
圧縮の方式ごとの圧縮指定方法
表
クラシック圧縮: 辞書を使用した行圧縮
– V10.1以降 CREATE TABLE/ALTER TABLEに COMPRESS YES STATIICを指定
V9.5/V9.7では、 CREATE TABLE/ALTER TABLEに COMPRESS YESを指定
アダプティブ圧縮: クラシック圧縮に加えて、動的にページ単位圧縮を実行する – V10.1以降: CREATE TABLEに COMPRESS YESを追加
索引
V9.7以降
– 圧縮表に作成される索引は自動的に圧縮
圧縮しない場合は、CREATE INDEX/ALTER INDEXでCOMPRESS NOを指定
– 非圧縮表に作成される表は自動的に非圧縮
圧縮する場合は、CREATE INDEX/ALTER INDEXでCOMPRESS YESを指定
圧縮されるデータ
表
CREATE TABLE/ALTER TABLEで圧縮指定することにより圧縮される
LOB:inline格納されれば圧縮される
XML:inline, XDAどちらも圧縮対象
一時表
DB2のオプティマイザーが圧縮するかどうかを自動的に判断し、辞書作成と圧縮を行う
システム一時表
ユーザー一時表
索引
CREATE INDEX/ALTER INDEXでCOMPRESSを指定、または圧縮表に作成された索 引が自動的に圧縮対象となる
一時表に作成された索引も圧縮対象となる
圧縮されないもの
MDCブロック索引, カタログ表の索引, specification onlyの索引, XMLメタ索引, XMLパ ス索引
ログ
上記の圧縮されたデータ
©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 85
クラシック圧縮(辞書による静的行圧縮)
クラシック圧縮
辞書を使って行内の連続パターンを圧縮する(V9.1から)
列単位ではなく、行単位で圧縮
辞書作成のタイミングと方法
ADC(自動辞書作成):圧縮が指定されており辞書が存在しない表に対して以下のような方法で一定 量のレコードが挿入されると、自動的に辞書が作成され以降に挿入されるレコードが圧縮される
– INSERT/INSERTモードのLOAD, IMPORT
LOAD REPLACE
クラシックREORG
INSPECT
考慮点
辞書が作成された時点でのデータに基づき圧縮されるため、追加されるデータのパターンが変わる と圧縮率が低くなる
– 辞書の再作成と再圧縮が必要になることがある
圧縮後 圧縮前
…
…
Plano, TX, 24355 02
500 01
…
…
Plano, TX, 24355 02
500 01
24355 TX
Plano 10000
500 Fred
24355 TX
Plano 20000
500 John
ZipCode State
City Salary
Dept Name
24355 TX
Plano 10000
500 Fred
24355 TX
Plano 20000
500 John
ZipCode State
City Salary
Dept Name
… 24355 TX
Plano 20000
500 John 24355 TX
Plano 10000
500
Fred 500 10000 Plano TX 24355 John 500 20000 Plano TX 24355 … Fred
… (02) 20000 (01)
John (02)
10000 (01)
Fred (01) 10000 (02) John (01) 20000 (02) … Fred
Dictionary
アダプティブ圧縮
アダプティブ圧縮はクラシック行圧縮に対して追加可能な拡張機 能
2種類の辞書の組み合わせで行を圧縮
クラシック圧縮辞書
ページ・レベルの辞書
メリット
辞書の作成から時間を経て、既存辞書によって圧縮効率が悪いデータパ ターンが多くなった場合でも高い圧縮率を保つ
– 高圧縮率を維持するために再編成の必要性がない
行圧縮のみの場合より、さらに圧縮できる
考慮点
行圧縮で圧縮済みのデータに対して圧縮を行うため、行圧縮だけのときよ りもCPU負荷が高くなる
データがそれほど変化しない場合、時間がたっても圧縮率がそれほど低 下していない場合、運用で圧縮辞書の再作成を行うことができる場合には、
指定の必要は無い
©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 87
索引の圧縮
索引ページ 圧縮された索引ページ
ページヘッダー スロットDir
AA 1 山田
AA 2 鈴木
AA 3 伊藤
ページヘッダー スロットDir
1 山田
2 鈴木
3 伊藤
可変長のスロット・ディレクトリー ページに格納されるキーの数に よってスロット・ディレクトリーの 長さを変動できるようにした。
前方一致部分の圧縮
各キーで共通な前方一致部分を 圧縮
RIDリストの圧縮
各エントリーのRID(ページ番号 +Slot番号)を保管する代わりに 差分情報を保管するように変更
索引を3つの手法を組み合わせて圧縮
ブランク・ページです
©日本IBMシステムズ・エンジニアリング(株) データ・プラットフォーム部 89