事前結合列の使用にあたっては、次のような点を検討してください。

  • 事前結合列に関する処理はOAMに記述しますが、該当するテーブルにアクセスできるのは、いずれかの事前結合列が明示的に使われている場合に限ります。これは、必要がなければテーブル・アクセスが発生しないようにして、処理性能が損なわれないようにするための措置です。
  • アクセス経路に基づくアクセス先テーブルをIBM iの高速テーブルの形で定義すると、事前結合列のソース情報が高速テーブルから取得されるため、パフォーマンスが向上し、入出力負荷が軽減されます。
  • 事前結合列を使う頻度に関しても充分に検討してください。コード・テーブルから説明記述を検索したいような状況では、「保管数」属性を適切に設定するか、アクセス元テーブルを高速テーブルとして実装することにより、性能を改善できます。アクセス頻度が過大であれば、OAMやDBアクセス処理を最適化したファンクションで使えるテーブル数にも影響が及びます(詳細については、『LANSA/AD ユーザーガイド』*DBOPTIMIZE/*DBOPTIMIZE_BATCHの使用を参照)。
  • ファンクションのDBアクセス処理を最適化すると、事前結合列に関する処理は、OAMロジックの形でファンクション内に埋め込まれます。
  • テーブル間の関係が1対多の事前結合列があると、OAMによる入出力処理が増えてしまいます。例えば部門テーブルに「部課数」列があれば、部門テーブルからレコードを取得するたびに、部課テーブルへのアクセスも発生します。
  • 事前結合列も普通の列と同じようにテーブルの定義に現れますが、値そのものが格納されているのではなく、アクセス経路をたどって実行時に求めるようになっています。
  • おおよその指針として、事前結合列の結合元テーブルは、多くても10~15程度にとどめてください。
  • No labels