DSNIZLDE
モジュールDSNIZLDEは、'COMPRESS YES'を指定して表スペースで圧縮された行を解凍します。このモジュールは、行の読み取りまたは更新時に呼び出されます。圧縮は表スペースにのみ適用されるため、このモジュールは索引スペースのアクセス時には呼び出されません。
ヒント
可能な場合は、INDEX ONLYアクセスを使用して必要なデータを検索してください。索引スペースは圧縮されないため、INDEX ONLYアクセスには解凍は必要ありません。
圧縮によるDASDコスト削減の効果を、データの圧縮(DSNIZLDC)と解凍に関連するCPUコストと比較して評価します。SYSIBM.SYSTABLEPARTのPAGESAVE列と、SYSIBM.SYSTABLESおよびSYSIBM.SYSTABSTATSのPCTROWCOMP列を検査してください。
解凍にかかるCPUコストは、検索された行の数に比例します。表スペース スキャンによって、CPUコストの負担が大きくなります。行の解凍にかかるコストは長い行の場合も高くなります。これは、対象ストリングのバイトが先頭から末尾まで順に処理される必要があるためです。
ESAデータの圧縮は、複数の表を持つ表スペースにはお勧めできません。圧縮ディクショナリーが、表スペースに含まれるデータの正確なサンプルを表さない場合があるためです。LOADの代わりにREORGを使用してディクショナリーを作成すると、より正確なサンプルを取得できます。
行の長さが以下のような場合も、圧縮が無効になる可能性があります。
-
DB2の行でデータ ページをスパンできないために行が長い場合
-
ページ当たり255行を保存するのに十分な長さである場合
参考資料
『IBM Db2 for OS/390, Messages and Codes(GC26-8979)』
『IBM Db2 for OS/390, Application Programming and SQL Guide(SC26-8958)』
『IBM Db2 for OS/390, Administration Guide(SC26-8957)』