ブール項述部
結合操作の場合、可能な限り、非ブール項述部より、ブール項述部の選択を優先すると、照会のパフォーマンスを改善することができます。
ブール項述部は、単純な述部または複合述部であり、特定の行について偽と評価されると、その特定の行に対して、WHERE文節全体がfalseになります。
例えば、以下の照会では、P1、P2、 および P3 は単純述部です。
SELECT * FROM T1 WHERE P1 AND (P2 OR P3);
- P1 は単純ブール項述部です。
- P2 と P3 は単純非ブール項述部です。
- P2 OR P3 は複合ブール項述部です。
- P1 AND (P2 OR P3) は複合ブール項述部です。
単一索引処理は、通常、マッチング索引アクセスにブール項述部を必要とします。 Db2 単一のカラムに対する単純な非ブール式のOR条件を、ブール式のINリストを使用するように書き換えます。 例えば、次のステートメントは書き直されます。
SELECT * FROM T1 WHERE C1 = ? OR C1 = ?;次のステートメントが、その結果です。SELECT * FROM T1 WHERE C1 IN (?, ?)複数索引アクセスまたは範囲リスト・アクセスでは、より複雑なブール項述部が候補になる可能性があります。
結合操作では、ブール項の述部は、非ブール項の述部よりも早い ステージで行を拒否できます。
推奨 :結合操作では、可能な限り、ブール型項述語を非ブール型項述語よりも優先して選択します。