[firebase-br] Plan - Natural (Order By)
Douglas Tosi
douglasht em gmail.com
Qua Mar 17 11:03:26 -03 2010
2010/3/17 Felipe Aron <felipearon em gmail.com>:
> Existe um índice para o campo "data_chqdev" ascendente. Se eu usar no order
> by somente o campo "data_chqdev" ele utiliza indice, já colocando um segundo
> campo "numero_chqrec" o plan deixa de usar o indice e coloca como NATURAL o
> Join ChequesDevol.
>
> Alguém sabe como contornar essa situação?
Oi Felipe, algumas idéias:
Existe índice cd.codcheque_chqdev? Se não existe tente criar um.
Qual a função do campo codstatus_chqdev? Se ele for um flag booleano e
o valor 1 for a extrema minoria, você pode tentar usar um índice nele.
Você pode tentar este select para forçar o uso de índice no join e
forçar o sort em memória:
select numero_chqrec
from (
select cd.data_chqdev, c.numero_chqrec
from chequesdevol cd
inner join chequesrec c on (cd.codcheque_chqdev = c.codigo_chqrec)
where cd.valordeve_chqdev > 0
and cd.codstatus_chqdev = 1
)
order by data_chqdev, numero_chqrec
Abraço,
--
Douglas Tosi
www.sinatica.com
Mais detalhes sobre a lista de discussão lista