布尔术语谓词

在联接操作中,尽可能选择布尔条件而非非布尔条件,以提高查询性能。

开始特定程序编程接口信息。布尔术语谓词是一个简单或复合谓词,当它对特定行求值为假时,会使整个WHERE子句对该特定行求值为假。

例如,在以下查询中, P1、 P2 和 P3 是简单的谓词:

SELECT * FROM T1 WHERE P1 AND (P2 OR P3);
  • P1 是一个简单的布尔术语谓词。
  • P2 和 是简单的非布尔术语谓词。 P3
  • P2 OR 是一个布尔复合谓词。 P3
  • P1 AND ( OR ) 是一个布尔复合谓词。 P2 P3
单索引处理通常需要布尔术语谓词来匹配索引访问。 Db2 针对单个列重写简单的非布尔条件或条件,以使用布尔条件IN列表。 例如,以下语句被改写为:
SELECT * FROM T1 WHERE C1 = ? OR C1 = ?;
以下陈述是结果:
SELECT * FROM T1 WHERE C1 IN (?, ?)

更复杂的布尔术语谓词可能需要多索引访问或范围列表访问。

在联接操作中,布尔术语谓词比非布尔术语谓词更早地拒绝行。

建议 :对于联接操作,尽可能选择布尔术语谓词而非非布尔术语谓词。

结束特定程序编程接口信息。