ページの先頭行へ戻る
Symfoware Server V12.2.0 RDB運用ガイド(データベース定義編)
FUJITSU Software

D.1 圧縮率の確認

圧縮率の確認は、業務で利用するデータまたはそれに準ずるデータを用いて実際にデータを格納することで確認します。以降のディスク使用量の見積もりなどで利用するため、確認した圧縮率を控えておいてください。

圧縮率の確認は、圧縮前と圧縮後のDSIの使用量を比較することにより行います。

圧縮率の確認手順を以下に示します。

圧縮率の確認手順

[すでに圧縮対象の表を運用している場合]

(1) 圧縮対象とするDSIのデータを抽出します。              ――― rdbunlsqlコマンド
(2) (1)のDSIの使用状況を取得します。                     ――― rdbudsiコマンド
                                                                (fオプション)
(3) (1)のDSIの定義に圧縮指定を追加して定義します。(別領域)  ――― rdbddlexコマンド
(4) (1)で抽出したデータを(3)で定義したDSIに格納します。  ――― rdbsloaderコマンド
(5) (4)でデータを格納したDSIに対して、DSIの使用状況を    ――― rdbudsiコマンド
     取得します。                                               (fオプション)
(6) (2)と(5)で取得した圧縮前後のDSI使用状況から圧縮率を計算します。――― 圧縮率の計算

[初めて定義する表の場合]

(1) 圧縮対象とするDSIのデータを用意します。
(2) (1)のDSIを圧縮指定なしで定義します。
(3) (1)で用意したデータを(2)で定義したDSIに格納します。  ――― rdbsloaderコマンド
(4) (2)のDSIの使用状況を取得します。                     ――― rdbudsiコマンド
                                                                (fオプション)
(5) (2)のDSIの定義に圧縮指定を追加して定義します。(別領域)  ――― rdbddlexコマンド
(6) (1)で用意したデータを(5)で定義したDSIに格納します。  ――― rdbsloaderコマンド
(7) (6)でデータを格納したDSIに対して、DSIの使用状況を    ――― rdbudsiコマンド
     取得します。                                               (fオプション)
(8) (4)と(7)で取得した圧縮前後のDSI使用状況から圧縮率を計算します。――― 圧縮率の計算

ポイント

圧縮対象とするDSIのデータについて

表全体のデータ傾向が同じであれば、格納されているデータの一部を取得して圧縮率の確認を行うことができます。この場合、圧縮率を求めるために500メガバイト以上のデータで確認してください。データの一部を抽出するにはrdbunlsqlコマンドで500メガバイト以上のデータを取得できるようなSQL文を指定してください。なお、全データを抽出するには、rdbunlコマンドを使用してください。

[データの一部を抽出するSQL文の例]

SELECT * FROM STOCKS.在庫表 WITH OPTION LIMIT(1000)
圧縮率の計算
圧縮率 = 圧縮前のDSIのデータ格納に必要なページ数
             / 圧縮後のDSIのデータ格納に必要なページ数

データ格納に必要なページ数 = A * (B / 100) * (C / 100)
A:割付けページ数
B:割付けページ数に対してデータが格納されているページの割合(単位は%)
C:使用中ページに対してデータが格納されている領域の割合(単位は%)

A、B、およびCの値は、rdbudsiコマンドの出力情報を利用します。

参照

rdbudsiコマンドの出力情報、およびコマンドの使用方法については、“コマンドリファレンス”を参照してください。SQL文については“SQLリファレンス”を参照してください。

以下に、圧縮率の確認手順の操作例およびDSIの定義例を示します。

操作例

圧縮率の確認手順の操作例

$ rdbunlsql -d 在庫管理DB -o -s "SELECT * FROM STOCKS.在庫表 WITH OPTION LIMIT(1000)" 
   /home/rdb1/unlsql.dat

$ rdbudsi -i 在庫管理DB.在庫表DSI -f

$ rdbddlex -d 在庫管理DB  /home/rdb1/create.dat  (圧縮指定のDSIを定義)

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI2 -o /home/rdb1/unlsql.dat

$ rdbudsi -i 在庫管理DB.在庫表DSI2 -f

圧縮指定のDSIの定義例

CREATE DSI 在庫表DSI2 DSO 在庫表DSO COMPRESS ALLOCATE DATA ON DBSPACE001 SIZE 500M
                                            ↑
                                         圧縮指定