NOT EXISTS句で条件を絞ろうとした場合、オラクルは
XXXX YYYY ANTI または XXXX YYYY RIGHT ANTI
といったプランを立てる。
XXXX YYYY の種類は HASH JOIN、MARGE JOIN、NESTED LOOPがある。
HASH JOIN (RIGHT) ANTIして欲しいのにMARGE JOIN (RIGHT) ANTIのプランを
立ててしまい、遅くなる場合がある。
こんな場合は
SELECT *
FROM T_XXX T1
WHERE NOT EXISTS
(SELECT /*+ HASH_AJ */ 0 FROM T_YYY T2 WHERE T1.ZZNO = T2.ZZNO)
のように、HASH_AJヒントをつける。
最終更新:2010年09月01日 13:20