[firebase-br] RES: Ajuda com select

rodrigo firebase em dominioinf.com.br
Sexta Março 19 20:10:28 -03 2021


Boa noite Mario Tudo bem?

Esse banco de dados estava em um servidor hostgator, e resolvi montar um servidor em minha empresa.
Converti para firebird pq estou acostumado a trabalhar com firebird e achei que ficaria melhor.

Mas não teve maneira.

Instalei o mysql e importei o banco de dados para dentro da minha maquina local.

O mesmo select é executado em 2 segundos e no firebird 20 segundos.

Não sei como fazem, mas não precisei fazer nada. Nem índice criei.

Grato por toda ajuda.



Enviado do Email para Windows 10

De: Mário Reis via lista
Enviado:sexta-feira, 19 de março de 2021 14:30
Para: FireBase
Cc:Mário Reis
Assunto: Re: [firebase-br] Ajuda com select

Com "Left Join" não tem hipóteses. Nem com um "AS400/OS400 da IBM" V.
conseguiria melhor performance, quanto mais com um PC por muito potente que
seja!???!
Ainda assim, experimente a criar uma tabela temporária em vez do left join.
Vá partindo o "grande problema" em problemas mais pequenos.
Meta tudo numa "StoreProcedure", preparada para receber os parâmetros do
Querie de input e de output, onde retorne apenas os campos que V. necessita.
Estou certo que será infinitamente mais rápido que o uso de "Left
Join"; por vezes chega a ser um pesadelo. Espero ter ajudado
Abraço
Com os meus melhores cumprimentos
Mário Agostinho Reis
919262146

Esta mensagem contém informação de natureza confidencial e é
exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
receber este email agradecemos que não o copie nem o reenvie e que nos
notifique do ocorrido através do email de resposta.
[image: cloudHQ] <https://www.free-email-tracker.com> Powered by
cloudHQ <https://www.free-email-tracker.com>


rodrigo via lista <lista em firebase.com.br> escreveu no dia terça, 16/03/2021
à(s) 22:36:

> Boa noite!
>
> Tenho um select cujas tabelas
> Itensfat tem mais de 1.500.000 registros
> Pedidosfat mais de 400.000 registros
> E clientes mais de 80.000 registros
>
> Tenho esse select
>
> SELECT COUNT(I.ID) FROM itensfat i
> LEFT JOIN pedidosfat p ON (P.CODIGO = I.CODIGO and I.ID_EMPRESA='114028')
> LEFT JOIN CLIENTES AS TB ON (TB.CODCLIENTE = P.NUMCLIENTE and
> TB.ID_EMPRESA='114028' )
> WHERE P.ID_EMPRESA='114028' AND TB.CODVENDEDOR = 2 AND I.ID_ATUALIZA>0
>
> Com esse retorno:
>
> PLAN JOIN (JOIN (I INDEX (ITENSFAT_ID_ATUALIZA), P INDEX
> (PEDIDOSFAT_CODIGO, PEDIDOSFAT_ID_EMPRESA)), TB INDEX
> (IDX_CLIENTES_CODCLIENTE, IDX_CLIENTES_IDEMPRESA))
>
> Prepare: 47 ms  Execute: 50 s 157 ms  Fetch: 50 s 157 ms
>
> Se altero para
> SELECT COUNT(I.ID) FROM pedidosfat p
> LEFT JOIN itensfat i ON (P.CODIGO = I.CODIGO and I.ID_EMPRESA='114028')
> LEFT JOIN CLIENTES AS TB ON (TB.CODCLIENTE = P.NUMCLIENTE and
> TB.ID_EMPRESA='114028' )
> WHERE P.ID_EMPRESA='114028' AND TB.CODVENDEDOR = 2 AND I.ID_ATUALIZA>0
>
> Demora mais de 7 minutos
>
> Alguem tem alguma dica de como posso melhorar a performance desse select?
>
> Grato
>
>
> --
> Este email foi escaneado pelo Avast antivírus.
> https://www.avast.com/antivirus
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html



-- 
Este email foi escaneado pelo Avast antivírus.
https://www.avast.com/antivirus


Mais detalhes sobre a lista de discussão lista