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;
Copy

DELETE e UPDATE (e MERGE) também pode utilizar o serviço de otimização de pesquisa:

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

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.