副問い合わせの中に絞れる条件があり、その副問い合わせを先に実行することで
パフォーマンスアップが期待される場合、
例えば下記SQLで、
SELECT *
FROM T_XXXX
WHERE YY日時 > :qYY日時
AND ZZNO IN (SELECT ZZNO FROM T_AAA WHERE BBNO = :qBBNO)
こんな感じで:qBBNOで絞って欲しいのに、プランでは:qYY日時で先に絞ろうとしてしまうとする。
こういうときは副問い合わせのネストを解除したプランを立てるよう、もう少しガンバレと
応援する必要がある。
SELECT *
FROM T_XXXX
WHERE YY日時 > :qYY日時
AND ZZNO IN (SELECT/*+ UNNEST */ ZZNO FROM T_AAA WHERE BBNO = :qBBNO)
のように、UNNESTヒントを副問い合わせの中に書く。
最終更新:2010年09月01日 13:06