Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

前節に示した最初のプログラムは、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コマンドの説明を参照してください。