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';