[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