Observation: Subquery Uses IN(監視レポート:副照会にINが使われている)
IN述部を使用して、相関副照会または副照会をコーディングしました。Db2バージョン5のDb2オプティマイザーは、相関副照会と副照会のどちらの索引も使用しません。Db2バージョン6では、副照会が相関していない場合、オプティマイザーは索引を使用できます。
以下の例は、INを使った副照会を示しています。
SELECT empno, lastname
FROM T1
WHERE workdept IN
(SELECT deptno
FROM T2
WHERE deptname = 'X');
Db2オプティマイザーが索引を使用できるように、副照会をJOINとしてコーディングし直してください。
SELECT empno, lastname
FROM T1, T2
WHERE workdept = deptno
AND deptname = 'X';