Obrigado Tadeu
Existe um índice pelos 2 campos.
Mais mesmo assim, vamos desconsiderar a situação do campo2, utilizando
somente o campo1, sem o coalesce é mais lento e não pega o indice, do
que com o coalesce que pega o indice, e portanto mais rápido.
Porque quando uso o coalesce nesse campo ele pega o indice e quando
não uso ele não pega. Mesmo que eu adicione somente esse campo no
order by continua lento.
Será que tenho que criar um indice unico somente com 1 campo e não com
os 2 campos como está atualmente ?
Obs.: as estatisticas estão atualizadas para melhor performance.
Obrigado pela ajuda
On 27 fev, 15:43, Tadeu Costa <
tadeu...@gmail.com> wrote:
> Ricardo,
>
> Um ponto que vc deve prestar atenção é que caso o "campo1" seja índice e
> vc faz uma pesquisa com igualdade nesse campo,
> como vc fez na primeira tentativa,o oracle utilizará o índice, caso ache
> necessário.
> Quando vc acrescenta uma condição como essa "coalesce( campo1 , '')" que
> vc utilizou na segunda vez, vc está descartando
> a possibilidade de busca através do índice, não sei se é esse o caso.
>
> Contando que o campo em questão não seja indíce.
> Ao acrescentar mais filtros a sua query e o tempo estar aumentado,
> provavelmente vc não deve estar levando em
> consideração a recuperação de todos os registros que satisfizeram o
> filtro.
> Lembre-se que vc tem que levar em conta o fetch de todos os registros.
>