DB2 V9.7 for Linux, UNIX, and Windows

谓词

谓词是一个搜索条件的元素,它表示或隐含一个比较操作。谓词包括在以 WHERE 或 HAVING 开头的子句中。

例如,在下列 SQL 语句中:
SELECT * FROM SAMPLE
    WHERE NAME = 'SMITH' AND
    DEPT = 895 AND YEARS > 5

以下这些是谓词:NAME = 'SMITH'; DEPT = 895; and YEARS > 5.

谓词分为以下类别(其顺序为从最有效的到效率最低的):
  1. 开始和停止条件将索引扫描分类(缩窄)。(这些条件也被称作范围定界谓词。)
  2. 可以根据索引来评估索引页(即所谓的索引控制)谓词,因为谓词中涉及的列是索引键的一部分。
  3. 不能从索引来评估数据页(即所谓的数据控制)谓词,但是当行仍留在缓冲区中时则可以评估。
  4. 保留谓词通常除了对基本表的简单访问之外还需要 I/O,并且必须在将数据复制出缓存页之后才可应用。它们包括含有子查询的谓词,或那些读取存储在与表分隔的文件中的 LONG VARCHAR 或 LOB 数据的谓词。

设计谓词时,应该以可能的最高选择性为目标以使返回的行最少。

以下类型的谓词是最有效且最常用的: