Re: [firebase-br] O firebird não está usando o indice do campo Razao para retornar a query
Carlos H. Cantu
listas em warmboot.com.br
Dom Maio 15 09:37:16 -03 2005
O otimizador não "gosta" de left joins, especialmente se você estiver
usando o FB 1.0.
No 1.5 isso foi melhorado, e no FB 2.0 está ainda melhor.
[]s
Cantu
http://www.warmboot.com.br
FireBase - http://www.FireBase.com.br
RSC> Bom dia Pessoal
RSC> Estou com a seguinte situação:
RSC> Tenho uma tabela com aprox. 2 milhões de registros ( dados apenas para
RSC> teste ). Quando executo a query abaixo usando a "ordem natural", ou seja
RSC> sem "ORDER BY", o retorno dos dados é imediado ( teste no ibexpert ).
RSC> Mas quando eu utilizo order by e.nome, demora mais de 1 minuto para
RSC> retornar. Tirando os Left join, os dados também retornam de imediato com
RSC> o Order by e.nome. O que está errado nesta query? Tentei utilizar o
RSC> PLAN, mas não obtive resultados. Porque o banco demora a retornar os
RSC> dados se eu tenho um indice por NOME?
RSC> Reuber
RSC> SELECT E.CODCLI
RSC> , E.RAZAO
RSC> , D.NOME
RSC> , E.FANTASIA
RSC> , E.NATUREZA
RSC> , E.CODMUNCOM
RSC> , A.DESCMUN AS DESCMUNCOM
RSC> , G.UF AS UFCOM
RSC> , E.ENDERECOCOM
RSC> , E.BAIRROCOM
RSC> , E.CXPOSTALCOM
RSC> , E.CODMUNCOB
RSC> , B.DESCMUN AS DESCMUNCOB
RSC> , H.UF AS UFCOB
RSC> , E.ENDERECOCOB
RSC> , E.BAIRROCOB
RSC> , E.CXPOSTALCOB
RSC> , E.CADASTRO
RSC> , E.COBRANCA
RSC> , E.NFONE
RSC> , E.CELULAR
RSC> , E.FAX
RSC> , E.EMAIL
RSC> , E.SITE
RSC> , E.CNPJCPF
RSC> , E.IERG
RSC> , E.CEPCOB
RSC> , E.CEPCOM
RSC> , E.CODCNAE
RSC> , C.DESCCNAE
RSC> , E.CODPROP
RSC> , D.CPF AS CPFPROP
RSC> , E.CODBANCO
RSC> , F.DESCBANCO
RSC> , E.EMITENOTA
RSC> , E.NUMCONTRATO
RSC> FROM CLIENTES E
RSC> left join LOCALIDADES A ON (A.CODMUN=E.CODMUNCOM)
RSC> left join LOCALIDADES B ON (B.CODMUN=E.CODMUNCOB)
RSC> left join CNAE C ON (C.CODCNAE=E.CODCNAE)
RSC> left join PROPRIETARIOS D ON (D.CODPROP=E.CODPROP)
RSC> left join BANCOS F ON (F.CODBANCO=E.CODBANCO)
RSC> left join UFS G ON (G.DNE=A.DNEUF)
RSC> left join UFS H ON (H.DNE=B.DNEUF)
RSC> ORDER BY E.NOME
Mais detalhes sobre a lista de discussão lista