Olá a todos, venho recorrer a ajuda de vocês em um processo que estou quebrando a cabeça para desenvolver.
Vamos lá
Tenho sistema de controle de estoque, utilizo as consultas para fazer as atualizações de estoque (entrada e saída de produtos).
Conforme imagem abaixo, no meio do processo de atualização de estoque utilizo 2 consultas que estão me gerando um problema quando se tem muitos registros no banco de dados (lentidão), basicamente oque elas fazem é excluir todos os dados de uma tabela temporária e incluir novamente todos os produtos cadastrados com os dados atualizados (quando se dá a baixa em um item do estoque ou adiciona) porem ela faz isso com todos os itens (independente se o item teve ou não modificação) eu queria que só atualizasse os itens que tiveram alguma alteração de estoque (ele iria comparar com a tabela temporária, se algum produto tivesse alteração de estoque, ele iria apagar somente esse produto e adicionar novamente porem com o estoque calculado/correto).
segue os códigos que elas utilizam
Consulta exclusão
Consulta adição
Obs: Antes de chegar nessa etapa, o sistema faz alguns cálculos comparativos com outras consultas para gerar o estoque atualizado.
Obs²: Infelizmente eu não consigo alterar a forma de calculo pois é contabilizada muitas variáveis no sistema e está redondinho (sem nenhum erro) só precisaria fazer esse ajuste para melhorar o desempenho em pelo menos 50%, então basicamente oque preciso é apagar somente os itens que tiveram modificação de estoque na consulta de exclusão e adicionar os produtos que tiveram alteração de estoque na consulta de adição.
Vamos lá
Tenho sistema de controle de estoque, utilizo as consultas para fazer as atualizações de estoque (entrada e saída de produtos).
Conforme imagem abaixo, no meio do processo de atualização de estoque utilizo 2 consultas que estão me gerando um problema quando se tem muitos registros no banco de dados (lentidão), basicamente oque elas fazem é excluir todos os dados de uma tabela temporária e incluir novamente todos os produtos cadastrados com os dados atualizados (quando se dá a baixa em um item do estoque ou adiciona) porem ela faz isso com todos os itens (independente se o item teve ou não modificação) eu queria que só atualizasse os itens que tiveram alguma alteração de estoque (ele iria comparar com a tabela temporária, se algum produto tivesse alteração de estoque, ele iria apagar somente esse produto e adicionar novamente porem com o estoque calculado/correto).
segue os códigos que elas utilizam
Consulta exclusão
- Código:
DELETE Tabela_Pesquisa.CodProd_Pesquisa, Tabela_Pesquisa.REFERÊNCIA, Tabela_Pesquisa.Produto, Tabela_Pesquisa.FABRICANTE, Tabela_Pesquisa.unid, Tabela_Pesquisa.Preço_Venda, Tabela_Pesquisa.ESTOQUE, Tabela_Pesquisa.NomeDoGrupoDeMateriais, Tabela_Pesquisa.PrecoAprazo
FROM Tabela_Pesquisa;
Consulta adição
- Código:
INSERT INTO TABELA_PESQUISA ( CodProd_Pesquisa, REFERÊNCIA, Produto, unid, Preço_Venda, ESTOQUE, NomeDoGrupoDeMateriais, FABRICANTE, PrecoAprazo )
SELECT Tbl_Cad_Produtos.CódigoDoProduto, Tbl_Cad_Produtos.REFERÊNCIA, Tbl_Cad_Produtos.Produto, Tbl_Cad_Produtos.unid, Tbl_Cad_Produtos.Preço_Venda, [ESTOQUE RESUMIDO].ESTOQUE, Tbl_Cad_Produtos.Grupo_Material, Tbl_Cad_Produtos.FABRICANTE, Tbl_Cad_Produtos.PRECO_APRAZO
FROM Tbl_Cad_Produtos LEFT JOIN [ESTOQUE RESUMIDO] ON Tbl_Cad_Produtos.CódigoDoProduto = [ESTOQUE RESUMIDO].CódigoDoProduto
ORDER BY Tbl_Cad_Produtos.Produto;
Obs: Antes de chegar nessa etapa, o sistema faz alguns cálculos comparativos com outras consultas para gerar o estoque atualizado.
Obs²: Infelizmente eu não consigo alterar a forma de calculo pois é contabilizada muitas variáveis no sistema e está redondinho (sem nenhum erro) só precisaria fazer esse ajuste para melhorar o desempenho em pelo menos 50%, então basicamente oque preciso é apagar somente os itens que tiveram modificação de estoque na consulta de exclusão e adicionar os produtos que tiveram alteração de estoque na consulta de adição.