连接 (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;
DELETE 和 UPDATE(和 MERGE)也可以使用搜索优化服务:
delete from test_table where id = 3;
update test_table set c1 = 99 where id = 4;
支持的谓词分离 OR¶
对于使用谓词分离(即 OR)的查询,如果 所有 谓词都能从中 受益,则可以通过搜索优化来提高查询性能。
例如,假设一个查询包含以下内容:
where condition_x or condition_y
如果每个条件分别返回几行记录(即 condition_x
返回几行 且 condition_y
返回几行),则搜索优化可以提高性能。
如果 condition_x
只返回几行但 condition_y
返回许多行,则查询性能 不能 从搜索优化中受益。
对于分离,每个单独的谓词在查询中都不是决定性的。必须对所有谓词进行评估,以确定搜索优化是否可以提高性能。