ページの先頭行へ戻る
PRIMEFLEX for HA Database 業務開発ガイド(Native SQL編)
FUJITSU Integrated System

5.4.3 ジョイン順のチューニング

FROM句に表と結合表を指定したとき、表と結合表(結合型がLEFTの場合)の左側の表を先にジョインし、その後、右側の表とジョインしたい場合があります。また、結合表(結合型がLEFTの場合)を複数指定したとき、左側の表どうしを先にジョインし、その後、右側の表とジョインしたい場合があります。このような場合、最適化パラメタ“JOIN_ORDER”で、FROM句全体のジョイン順を最適化することによって、意図したジョイン順を選択できます。

TBL2が大量件数でTBL1.C2=10の検索範囲が小さい場合

TBL2が大量件数でTBL1.C1=10の検索範囲が小さい場合、TBL1→TBL2→TBL3の順にジョインした方が性能がよくなります。このような場合は、最適化パラメタ“JOIN_ORDER”にAUTOまたはOUTSIDEを指定します。

TBL2が少量件数でTBL1.C2=10の検索範囲が大きい場合

TBL2が少量件数でTBL1.C1=10の検索範囲が大きい場合、TBL2→TBL3→TBL1の順にジョインした方が性能がよくなります。このような場合は、最適化パラメタ“JOIN_ORDER”にAUTOまたはINSIDEを指定します。

適切なジョイン順を選択する

一般的に、最適化パラメタ“JOIN_ORDER”にはAUTOと指定しておくことをお奨めします。その上で、最適化情報を設定または変更しても意図したジョイン順にならない場合は、OUTSIDEまたはINSIDEを指定して、ジョイン順をチューニングしてください。

ASSIST指定によるチューニング

最適化パラメタ“JOIN_ORDER”を変更すると、他のアプリケーションやSQL文に悪影響がでる場合があります。このような場合、ASSIST指定の“LEADING_TABLE”を利用すると、最適化パラメタを変更することなく、ジョイン順を固定化することができます。

参照

ASSIST指定の使用方法については、“Symfoware Server アプリケーション開発ガイド(共通編)”を参照してください。