Observation: Use of NOT Predicate(監視レポート:NOT述部の使用)

通常、Db2オプティマイザーは、否定述部のある索引を使用しません。論理的に否定述部は、検索対象を検索可能な大きさの結果セットに制限しないからです。そのため、すべての値を検索するまで検索の対象にならない値を判別できません。これは、他の否定述部(NOT IN、NOT BETWEEN、NOT LIKEなど)にも該当します。

一部の否定述部は肯定述部に変換することができます。たとえば、以下のステートメントでは、less than(<)の述部にNOT演算子(¬)が使われています。

SELECT
C1 
FROM 
T1 
WHERE 
C3 ¬< 7 

このステートメントは以下のように、以上(>=)の述部を使用してコーディングし直すことができます。

SELECT
C1 
FROM 
T1 
WHERE 
C3 >= 7 

メモ:この監視レポートは、「NOT」または「¬」を含むステートメントに生成されます。