[firebase-br] RES: RES: RES: Ajuda com select

rodrigo firebase em dominioinf.com.br
Quarta Março 17 15:44:17 -03 2021


Boa tarde,

Puxei essa tabela do mysql, que esta online, e converti ela em firebird para ficar em meu servidor.

O dados foram recém importados.

Tem índice em todos os campos.

"P.CODIGO = I.CODIGO and I.ID_EMPRESA='114028'  não consegui identificar o erro aqui, a chave estrangeira é o P.CODIGO.

Pior que no servidor online com mysql esta rodando esse mesmo sql sem índice nenhum criado com 1 segundo.

Grato



Enviado do Email para Windows 10

De: SERGIO LOPES via lista
Enviado:quarta-feira, 17 de março de 2021 15:34
Para: Odir Rodrigues de Oliveira via lista
Cc:SERGIO LOPES
Assunto: Re: [firebase-br] RES: RES: Ajuda com select

 Boa tarde,não sei se entendi muito bem mas...
o problema nao esta aqui "P.CODIGO = I.CODIGO and I.ID_EMPRESA='114028'  "?  veja q nessa estrutura deveria ter uma chave estrangeira para pedidofat de forma q iria consultar apenas itens desse de cada pedido especificamente e da forma q está cada pedido esta comparando com todos os registros da tabela itensfat...
penso q deveria sera p.codigo = i."chave_estrangeira_pedidofat" and ..
I.ID_EMPRESA='114028' esta parte aqui poderia ser considerado redundante ?? pq a empresa nao ja identifica no pedidofat?

é isso ou estou enganado... a questão dos indices devem ser levando em consideração claro.
espero ter ajudado.

    Em quarta-feira, 17 de março de 2021 14:29:01 BRT, Odir Rodrigues de Oliveira via lista <lista em firebase.com.br> escreveu:  
 
 Nas suas tabelas existem Índices para os campos CODVENDEDOR e ID_ATUALIZA?
Caso negativo experimente criar.

Odir Rodrigues de Oliveira
Clipp-net Informática
São Carlos - SP
Fone: +55 16 3307-7369
Cel: +55 16 98137-2103
Site: www.clippnet.com.br


-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Gustavo Novaes
via lista
Enviada em: quarta-feira, 17 de março de 2021 08:35
Para: FireBase
Cc: Gustavo Novaes
Assunto: Re: [firebase-br] RES: Ajuda com select

Manda a estrutura das tabelas pra gente conhecer melhor. Talvez o uso de
CTE ajude. Ontem assisti uns vídeos no youtube de um cara chamado Edson
Gregório. Num deles falava sobre performance.

*Gustavo Novaes *




Em qua., 17 de mar. de 2021 às 08:27, rodrigo via lista <
lista em firebase.com.br> escreveu:

> Bom dia Gustavo. Obrigado pela resposta,
>
> Mesmo resultado.
>
>
>
> Enviado do Email para Windows 10
>
> De: Gustavo Novaes via lista
> Enviado:quarta-feira, 17 de março de 2021 08:04
> Para: FireBase
> Cc:Gustavo Novaes
> Assunto: Re: [firebase-br] Ajuda com select
>
> Bom dia,
> Minha sugestão, embora não tenha testado.
>
> SELECT COUNT(I.ID <http://i.id/>) FROM ITENSFAT ITENS
> INNER JOIN PEDIDOSFAT PEDIDOS ON (PEDIDOS..CODIGO = ITENS.CODIGO and
> ITENS.ID_EMPRESA='114028')
> INNER JOIN CLIENTES AS CLIENTES ON (CLIENTES.CODCLIENTE =
> PEDIDOS.NUMCLIENTE AND CLIENTES.CODVENDEDOR = 2)  and
> TB.ID_EMPRESA='114028'
> )
> WHERE PEDIDOS.ID_EMPRESA='114028' AND AND ITENS.ID_ATUALIZA>0
>
> Gosto do uso de CTEs mas não domino ainda.
>
> *Gustavo Novaes *
>
>
>
>
> Em qua., 17 de mar. de 2021 às 07:04, João Denóis via lista <
> lista em firebase.com.br> escreveu:
>
> > Bom dia,
> > A tabela Itensfat tem mais de 1.500.000 registros, e você passa ela em
um
> > left, já pensou em passar com INNER? Existe a possibilidade de criar um
> > index neste código tbm.
> >
> > Em ter., 16 de mar. de 2021 às 20:36, rodrigo via lista <
> > lista em firebase.com.br> escreveu:
> >
> > > 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
> >
> ______________________________________________
> 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
> ______________________________________________
> 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


______________________________________________
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