Re: [firebase-br] Extrema Lentidão em Consulta Firebi rd 5
Rodrigo Gomes da Silva via lista <[email protected]> Fri, 16 May 2025 18:40:02 -0300
| Newsgroups | gmane.comp.db.firebase.portuguese |
|---|---|
| Message-ID | <CAJ2k39AQ=-EEH_BgHhdaanr4mNb8yXFaA9s6ZTr11SLLek8WNw@mail.gmail.com> |
E uma outra coisa ... se você tem cada entrada de estoque gera um registro em estoque, e vai tendo a saida até a Quant estar zerada, compensa vc ignorar esses registros sempre que for processar algo de estoque sobrando, criando um índice tipo Cod_Mercadoria+Quant e fazer LEFT JOIN Soma_Estoque_1 ST1 ON ST1.Cod_Mercadoria = REL.Cod_Mercadoria and ST1.Quant>0 Assim ele pula os registros sem estoque (que deve ser a maioria pra cada produto) direto no filtro ao invés de ficar lento todos eles pra somar 0 On Fri, May 16, 2025 at 5:39 PM Luciano franca <[email protected]> wrote: > Eu Fiz apenas um exemplo basico onde dois "LEFT Join" causam extrema > lentidão no Firebird meu SQL completo. > Veja esse topico para entender melhor > > https://github.com/FirebirdSQL/firebird/issues/8568 > > > > > > > Em sexta-feira, 16 de maio de 2025 às 15:48:49 BRT, Rodrigo Gomes da Silva > <[email protected]> escreveu: > > > SELECT > CM.Codigo, > CM.MERCADORIA, > Sum(E.quant) As Saldo, > AVG(E2.preco_custo) As Preco > FROM CADASTRO_MERCADORIAS CM > left Join ESTOQUE E ON (E.Cod_Mercadoria = CM.codigo) > left Join ESTOQUE E2 ON ( E2.Cod_Mercadoria = CM.Codigo ) > Group By 1, 2 > > Você quer o preço medio e a quantidade, por que esta fazendo 2 joins para > o mesmo filtro? Os registros são multiplicados. > > SELECT > CM.Codigo, > CM.MERCADORIA, > Sum(E.quant) As Saldo, > AVG(E.preco_custo) As Preco > > FROM CADASTRO_MERCADORIAS CM > left Join ESTOQUE E ON (E.Cod_Mercadoria = CM.codigo) > Group By 1, 2 > > > Aparentemente bastaria fazer isso. > ______________________________________________ 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