[firebase-br] Plan - Natural (Order By)

Fausto fausto.s.a em uol.com.br
Qua Mar 17 10:38:59 -03 2010


Em 17/03/2010 09:50, Felipe Aron escreveu:
> Pessoal estou apanhando pra entender o porque o plan da minha SQL não está
> usando o índice. Minha SQL é a seguinte:
>
> select 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 cd.data_chqdev, c.numero_chqrec
>
> 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?
>
>
Seguinte, se você utiliza dbexpress, com 
SqlDataSet+DataSetProvider+ClientDataSet, deixe para fazer essa 
ordenação, no próprio ClientDataSet, através da propriedade 
IndexFieldNames, desta forma ser usado o índice na instrução Sql e 
estando os dados em memória a ordenação é muito mais rápida.

-- 
Fausto Alves
Skype:faustoalves
msn:faustoalves em com4.com.br
Franca-SP
Enviado pelo Mozilla Thunderbird
http://br.mozdev.org/thunderbird





Mais detalhes sobre a lista de discussão lista