Como as conjunções (AND) e disjunções (OR) funcionam com a otimização de pesquisa¶
A otimização de pesquisa pode acelerar consultas usando conjunções (operador AND) e disjunções (operador OR) de predicados compatíveis.
Conjunções de predicados compatíveis (AND)¶
Para consultas que utilizam conjunções de predicados (ou seja, AND), o desempenho da consulta pode ser melhorado pela otimização de pesquisa se qualquer um dos predicados for beneficiado.
Por exemplo, suponha que uma consulta tenha:
where condition_x and condition_y
A otimização de pesquisa pode melhorar o desempenho se qualquer uma das condições retornar separadamente algumas linhas (ou seja, condition_x
retorna algumas linhas ou condition_y
retorna algumas linhas).
Se condition_x
retornar algumas linhas mas condition_y
retornar muitas linhas, o desempenho da consulta ainda poderá se beneficiar da otimização de pesquisa.
Exemplos¶
Se os predicados forem suportados individualmente por um serviço de otimização de pesquisa, eles poderão ser unidos pela conjunção AND
e ainda serem suportados pelo serviço de otimização de pesquisa:
select id, c1, c2, c3
from test_table
where c1 = 1
and
c3 = TO_DATE('2004-03-09')
order by id;
DELETE e UPDATE (e MERGE) também pode utilizar o serviço de otimização de pesquisa:
delete from test_table where id = 3;
update test_table set c1 = 99 where id = 4;
Disjunções de predicados compatíveis (OR)¶
Para consultas que utilizam disjunções de predicados (ou seja, OR), o desempenho da consulta pode ser melhorado pela otimização de pesquisa se todos os predicados se beneficiarem.
Por exemplo, suponha que uma consulta tenha:
where condition_x or condition_y
A otimização de pesquisa pode melhorar o desempenho se cada condição separadamente retornar algumas linhas (ou seja, condition_x
retorna algumas linhas e condition_y
retorna algumas linhas).
Se condition_x
retorna algumas linhas, mas condition_y
retorna muitas linhas, o desempenho da consulta não se beneficia da otimização de pesquisa.
No caso de disjunções, cada predicado isoladamente não é decisivo para a consulta. Todos os predicados devem ser avaliados para determinar se a otimização de pesquisa pode melhorar o desempenho.