连接 (AND) 和分离 (OR) 如何与搜索优化配合使用

搜索优化可以使用所支持谓词的 连接 (AND 运算符)和 分离 (OR 运算符)来加速查询。

支持的谓词连接 (AND)

对于使用谓词连接(即 AND)的查询,如果 任何 谓词都能从中 受益,则可以通过搜索优化来提高查询性能。

例如,假设一个查询包含以下内容:

where condition_x and condition_y

如果任一条件分别返回几行记录(即 condition_x 返回几行 condition_y 返回几行),则搜索优化可以提高性能。

如果 condition_x 只返回几行但 condition_y 返回许多行,查询性能仍然可以从搜索优化中受益。

示例

如果谓词由搜索优化服务单独提供支持,则可以通过连词 AND 联接它们,并且仍受搜索优化服务支持:

select id, c1, c2, c3
    from test_table
    where c1 = 1
       and
          c3 = TO_DATE('2004-03-09')
    order by id;
Copy

DELETE 和 UPDATE(和 MERGE)也可以使用搜索优化服务:

delete from test_table where id = 3;
Copy
update test_table set c1 = 99 where id = 4;
Copy

支持的谓词分离 OR

对于使用谓词分离(即 OR)的查询,如果 所有 谓词都能从中 受益,则可以通过搜索优化来提高查询性能。

例如,假设一个查询包含以下内容:

where condition_x or condition_y

如果每个条件分别返回几行记录(即 condition_x 返回几行 condition_y 返回几行),则搜索优化可以提高性能。

如果 condition_x 只返回几行但 condition_y 返回许多行,则查询性能 不能 从搜索优化中受益。

对于分离,每个单独的谓词在查询中都不是决定性的。必须对所有谓词进行评估,以确定搜索优化是否可以提高性能。

语言: 中文