11.21.1 データ圧縮機能
HiRDBが表にデータを格納するとき,データを圧縮して格納できます。これをデータ圧縮機能といいます。データの圧縮は列単位に指定でき,圧縮したデータを格納する列を圧縮列といい,圧縮列がある表を圧縮表といいます。
HiRDBがデータを圧縮することで,次のメリットがあります。
-
データベースの容量を削減できる。
-
UAP側でデータ圧縮処理を実装する必要がない。
データ圧縮の概要を次の図に示します。
- 〔説明〕
-
HiRDBがデータの圧縮及び伸張処理を実行するため,ユーザはデータの圧縮及び伸張を指示する必要はありません。
(1) 適用基準
画像,音声など,容量が大きい可変長バイナリデータを含む表を圧縮表にすることをお勧めします。ただし,圧縮表の場合,圧縮処理や伸張処理によるオーバヘッドが掛かります。このため,性能よりも格納効率を重視するシステムで使用してください。
(2) データの圧縮効率の目安
圧縮前と比べてどれだけ格納領域を節約できるかは,圧縮効率で表します。圧縮効率は,次の計算式で求めます。
圧縮効率(%)= {(圧縮前のデータ長−圧縮後のデータ長)÷圧縮前のデータ長}×100
また,圧縮率と圧縮効率の関係を次に示します。
圧縮率+圧縮効率=100
圧縮率の測定方法については,「データの圧縮率の測定方法」を参照してください。
圧縮効率の目安を次の表に示します。なお,データの圧縮率及び圧縮効率は,圧縮対象となるデータの実態によって異なるため,ここで示す圧縮効率はあくまで目安値です。
データ種別 |
圧縮効率(単位:%) |
---|---|
全文字が同一のBINARYデータ |
98.51 |
完全にランダムなBINARYデータ |
-0.36※ |
テキストデータ(.txt) |
58.50 |
画像データ(.bmp) |
75.42 |
音声データ(.wav) |
9.46 |
- 注※
-
圧縮処理で付与されるヘッダ領域が増加したため,圧縮効率がマイナスになります。圧縮処理については,「データ圧縮の仕組み」を参照してください。
(3) 圧縮表に対する操作でHiRDBが出力するファイル
圧縮表に対する操作によって,HiRDBが出力するファイルのデータの状態を次の表に示します。
処理内容 |
ファイル |
データの状態 |
---|---|---|
作業表用ファイルが必要なSQLの実行 |
作業表用ファイル |
伸張されたデータ |
データベースの更新 |
システムログファイル |
圧縮されたデータ |
システムログのアンロード |
アンロードログファイル |
|
データベースのバックアップ(pdcopyコマンド) |
バックアップファイル |
|
表の再編成 (pdrorg -k rorgコマンド) |
アンロードデータファイル |
圧縮されたデータ※ |
表のアンロード (pdrorg -k unldコマンド) |
伸張されたデータ |
注※ UOCを利用して再編成を行う場合は,伸張されたデータが格納されます。
(4) 障害発生時の対処
圧縮表のデータやインデクスが格納されているRDエリアに障害が発生した場合,通常のデータベースの回復と同様にデータベース回復ユティリティ(pdrstr)で回復できます。