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