LOOP文の高速化

Home » データ定義&操作 » LOOP文の高速化
データ定義&操作 コメントはまだありません

概要


LOOP文はBINARY SEARCHのような検索オプションが存在しない為、パフォーマンスがネックになる事がある。
一度BINARY SEARCHを使用したREAD TABLEを行い検索条件の先頭行を取得し、LOOP文の検索開始をその行から
行うようにする事でパフォーマンス向上に繋がる。

サンプルコード:LOOP文の高速化

説明


まず最初に、LTAK・LTAPからデータを取得しているが、これはテストデータの取得の為なのでどのようなテーブルでも問題ない。
取得後に主キーでソートを行う。BINARY SEARCHを使用する為に並び順は非常に重要なので忘れず行うようにしよう。
そしてLTAKのループ内でREAD TABLEを使ってLTAPの開始行を取得するが、項目の値を取得する必要はないのでTRANSPORTING NO FIELDSオプションを使用する。
開始行がシステム変数:SY-TABIXに入っているのでその値を別の変数に移しておく。
次に、LTAPのLOOP文を使用する際にFROM 開始行のオプションをつける。これでLOOP文は開始行以降の検索しか行わないようになる。
このような処理を入れる事でLOOP文の検索件数が減る為、パフォーマンス向上に繋がる事になる。
同様にTO 終了行のオプションも存在する。1万件程度の内部テーブルであればFROMのみの方がパフォーマンスは良い。