4.3.9 KEEP_LASTパラメータの適用

前節に示した最初のプログラムは、FETCHコマンドにKEEP_LASTパラメータを指定するだけでも、「さらに最適化した例」に匹敵する処理性能が得られます。

GROUP_BY   NAME(#TRANS) FIELDS(#TRANNUM #TRANDATE #TRANTIME 
           #TRANTYPE #TRANDESC #TRANUSER #TRANSTATE #STATDESC)

SELECT     FIELDS(#TRANS) FROM_FILE(TRANS)
FETCH      FIELDS(#TRANS) FROM_FILE(STATES) 
           WITH_KEY(#TRANSTATE) KEEP_LAST(6) 
FETCH      FIELDS(#TRANS) FROM_FILE(TRNTYP) 
           WITH_KEY(#TRANTYPE) KEEP_LAST(20)
UPRINT     FIELDS(#TRANS)
ENDSELECT

 

TRANSファイルに例えば状態コードが3通り、取引タイプが5通り現れるとすれば、1万のレコードがあっても、データベースには、(10000 + 3 + 5) = 10008回アクセスすればよいことになります。これは19992回分の入出力処理の削減に相当します。したがって実行時間は約3分の1になりました。

KEEP_LASTパラメータについて詳しくは、FETCHコマンドの説明を参照してください。