[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