MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Lentidão Consulta

    avatar
    diegok
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 09/05/2020

    Lentidão Consulta  Empty Lentidão Consulta

    Mensagem  diegok em 16/5/2020, 13:49

    Pessoal, bom dia.

    Criei uma consulta com ajuda do pessoal aqui do fórum. Apesar de ter obtido o resultado desejado com a consulta ela ficou bastante "lenta". Inicialmente achei que pela quantidade de registros, porém, mesmo com uma quantidade limitada de registros no BD (exemplo anexo), há a lentidão. Isso é normal?

    Pretendo usar a consulta para alimentar um formulário + subformulários com os dados organizados para melhor visualização, mas com a lentidão fica mais difícil. Pensei então, a partir da consulta criar uma tabela temporária para alimentar os formulários, mas o sistema fica "em loop" e não cria a tabela.

    Alguém tem uma sugestão?
    Quando criei o formulário vinculado a consulta ele ficou muito lento, dificultando a utilização.



    Abs.
    Anexos
    Lentidão Consulta  AttachmentBD_exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (552 Kb) Baixado 10 vez(es)
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 16/5/2020, 14:25

    Caro Amigo,

    Criar a tabela temporária, cria, demora mais cria. O que realmente você quer fazer com o Select no campo Stock. Não teria uma outra forma de fazer isso sem o Select. Quando tira ele fica muito rápido. Explique melhor esse campo Stock para vermos outra forma de fazer para ficar mais rápido.

    Abraços
    avatar
    diegok
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5
    Registrado : 09/05/2020

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  diegok em 16/5/2020, 14:50

    Olá!

    O objetivo do campo Stock é retornar as quantidades de estoque de cada item (EstruturaProdutos.CodItem), a partir da tabela "Estoques", com a condição de ser de um ou mais locais específicos (critério "MONT" no IIF). A tabela "Estoques" não possui dados de todos os itens, por isso o NZ para retornar o valor 0, nestes casos.

    Abs.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7746
    Registrado : 05/11/2009

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Alexandre Neves em 16/5/2020, 16:55

    Boa tarde
    O problema é usar nulos que, depois, têm de ser convertidos em zero
    utilize a função
    Código:
    Function fStock(CodComponente As Long) As Long
        '--------------------------------------------------------------'
        '   código criado por Alexandre Neves, do Fórum MaximoAccess   '
        '     utilize o código livremente mas mantenha os créditos     '
        '--------------------------------------------------------------'
        Dim Rst As DAO.Recordset
        Set Rst = CurrentDb.OpenRecordset("SELECT Sum(QtdEstoque) FROM Estoques WHERE LocalEstoque='MONT' and Cod_Item=" & CodComponente)
        If IsNull(Rst(0)) Then fStock = 0 Else fStock = Rst(0)
    End Function
    Na consulta
    SELECT CodItem, DescAcabado, Nível, CodComponente, DescComponente, fStock(CodComponente) AS Stock INTO Faltas FROM EstruturaProdutos ORDER BY Identificação;


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 16/5/2020, 18:43

    Grande Alexandre,

    Fiz conforme sua sugestão, no entanto ainda está bastante lento. Levando em consideração os tamanhos das tabelas, seria isso mesmo?

    Abraços
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7746
    Registrado : 05/11/2009

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Alexandre Neves em 16/5/2020, 19:10

    Está muito mais rápida que a consulta fornecida e não vejo forma de a melhorar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 16/5/2020, 19:20

    Ótimo Alexandre, muito grato pelo esclarecimento. Estou só no aprendizado. O DiegoK que decida. É o dono da bola.

    Abraços
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7746
    Registrado : 05/11/2009

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Alexandre Neves em 16/5/2020, 19:26

    Ou
    SELECT CodItem, DescAcabado, Nível, CodComponente, DescComponente, NZ((SELECT Sum(QtdEstoque) FROM Estoques WHERE LocalEstoque='MONT' and Cod_Item=EstruturaProdutos.CodComponente),0) AS Stock INTO Faltas FROM EstruturaProdutos ORDER BY EstruturaProdutos.Identificação;


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 16/5/2020, 19:51

    Desse modo está aparentemente mais lento.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2307
    Registrado : 22/11/2016

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  DamascenoJr. em 16/5/2020, 21:29

    Qual a versão do Access que usam?


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 16/5/2020, 21:52

    Eu uso 2010.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2307
    Registrado : 22/11/2016

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  DamascenoJr. em 17/5/2020, 00:08

    O pulo do gato

    Lentidão Consulta  Dica_p10


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 17/5/2020, 17:39

    Grande Mestre,

    Fiz a alteração sugerida e ficou super rápido. Mestre, qual o motivo que isso tanto interfere no processo? Curiosidades de um aprendiz. Isso não é o pulo do gato, é um Golpe de Mestre.

    Grande abraço
    avatar
    Ismael Silva
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 635
    Registrado : 11/12/2017

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Ismael Silva em 17/5/2020, 19:19

    Boa Damasceno,

    Um tempo atrás eu tinha uma consulta que como esta, estava demorando muito para executar, e eu pensei que era por que tinha colocado uma função para que na minha caixa de Listagem, trouxesse um determinado valor com 3 casas decimais, até que desisti, pelo fato de demorar muito, mas agora, vou seguir a sua dica, certamente vai me ajudar.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2307
    Registrado : 22/11/2016

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  DamascenoJr. em 17/5/2020, 21:14

    Dicas de estudo
    usandoaccess.com.br/dicas/gerar-milhoes-registros-teste-access.asp?id=1
    mendipdatasystems.co.uk/speed-comparison-tests-7/4594524997
    mendipdatasystems.co.uk/speed-comparison-tests/4594424200


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Finformática
    Finformática
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 598
    Registrado : 23/03/2010

    Lentidão Consulta  Empty Re: Lentidão Consulta

    Mensagem  Finformática em 18/5/2020, 18:51

    Damasceno,

    Muito grato pelas dicas de estudo.

    Abraços

      Data/hora atual: 25/10/2020, 08:12