[firebase-br] Query muito Lenta com left join

Jimi Roy Pugss jimi_roy em dew.com.br
Sex Maio 13 20:16:10 -03 2005


Meu amigo, até onde sei, os indices auxiliam e são usados para resolução
de clausulas de filtragem (where) e de constraints e naum para ordenação
de resultados... O "order by" é a ultima coisa que o servidor faz antes de
te retornar os dados obtidos por uma consulta, ele ja tem tudo que vc
pediu separado, e antes de "por na maleta" pra te mandar pela rede o
result set, ele ordena pelo que vc pediu, mas ai não tem indice que ajude,
e quanto maior o resultset maior o tempo pra ele ordenar empacotar e te
enviar.... indices agilizam consultas com where e joins, e naum
ordenação... se naum fui claro, por favor, me diga pra poder ser mais
técnico, ou menos de acordo com sua compreensão...

Jimi Roy
Developer World

> Bom dia Pessoal
>
> Estou com a seguinte situação:
>
> Tenho uma tabela com aprox. 2 milhões de registros ( dados apenas para
> teste ). Quando executo a query abaixo usando a "ordem natural", ou seja
> sem "ORDER BY", o retorno dos dados é imediado ( teste no ibexpert ).
> Mas quando eu utilizo order by e.nome, demora mais de 1 minuto para
> retornar. Tirando os Left join, os dados também retornam de imediato com
> o Order by e.nome. O que está errado nesta query? Tentei utilizar o
> PLAN, mas não obtive resultados. Porque o banco demora a retornar os
> dados se eu tenho um indice por NOME?
>
> Reuber
>
> SELECT E.CODCLI
>      , E.RAZAO
>      , D.NOME
>      , E.FANTASIA
>      , E.NATUREZA
>      , E.CODMUNCOM
>      , A.DESCMUN AS DESCMUNCOM
>      , G.UF AS UFCOM
>      , E.ENDERECOCOM
>      , E.BAIRROCOM
>      , E.CXPOSTALCOM
>      , E.CODMUNCOB
>      , B.DESCMUN AS DESCMUNCOB
>      , H.UF AS UFCOB
>      , E.ENDERECOCOB
>      , E.BAIRROCOB
>      , E.CXPOSTALCOB
>      , E.CADASTRO
>      , E.COBRANCA
>      , E.NFONE
>      , E.CELULAR
>      , E.FAX
>      , E.EMAIL
>      , E.SITE
>      , E.CNPJCPF
>      , E.IERG
>      , E.CEPCOB
>      , E.CEPCOM
>      , E.CODCNAE
>      , C.DESCCNAE
>      , E.CODPROP
>      , D.CPF AS CPFPROP
>      , E.CODBANCO
>      , F.DESCBANCO
>      , E.EMITENOTA
>      , E.NUMCONTRATO
> FROM CLIENTES E
> left join LOCALIDADES A ON (A.CODMUN=E.CODMUNCOM)
> left join LOCALIDADES B ON (B.CODMUN=E.CODMUNCOB)
> left join CNAE C ON (C.CODCNAE=E.CODCNAE)
> left join PROPRIETARIOS D ON (D.CODPROP=E.CODPROP)
> left join BANCOS F ON (F.CODBANCO=E.CODBANCO)
> left join UFS G ON (G.DNE=A.DNEUF)
> left join UFS H ON (H.DNE=B.DNEUF)
> ORDER BY E.NOME
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>





Mais detalhes sobre a lista de discussão lista