MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Melhorar desempenho de consulta por VBA.

    Compartilhe

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 460
    Registrado : 20/01/2014

    [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Seg 3 Out - 17:15

    Olá amigos, boa noite,

    Tenho este VBA que executo conforme descrito abaixo, mas me apareceu um pequeno obstáculo, pois este código está demorando em media 30 segundos para ser executado plenamente.

    Alguém tem uma sugestão para melhorar o desempenho deste código?

    Grato,


    =>Nois
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 532
    Registrado : 09/11/2012

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  =>Nois em Seg 3 Out - 20:04

    nao tem anexo


    .................................................................................
    [Você precisa estar registrado e conectado para ver esta imagem.] Att. Nois

    Se tudo não der certo reflita nessa frase: "Huguinho", "Zezinho" & "Luizinho"

    Uilson Brasil
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 999
    Registrado : 23/04/2013

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  Uilson Brasil em Seg 3 Out - 23:43

    Faltou o código ...


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 460
    Registrado : 20/01/2014

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Ter 4 Out - 10:30

    Vou postar um anexo com a parte do código envolvido.

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 460
    Registrado : 20/01/2014

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Ter 4 Out - 18:33

    Segue pequeno modelo das partes envolvidas no processo, cuja consulta apresenta lentidão.
    Lembrando que pincei apenas uma pequena amostra para exemplificar aos amigos do fórum.

    PS: Como minha tabela completa (ComparativoDetalhe) tem mais de 165.455 registros, não posso anexá-la aqui no fórum em virtude do tamanho.

    Grato,
    Anexos
    Teste_Modelo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (92 Kb) Baixado 6 vez(es)

    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  Alexandre Neves em Qua 5 Out - 4:25

    Bom dia
    Compare o desempenho

    Dim strSql As String
    strSql = "INSERT INTO ComparativoDetalhe ( NomeUsuário, CódUsuário, CódGuia, DtAtendimento, DtAlta, CódServiço, NomeServiço, SomaDeQuantidadeServiço, Referencia, SomaDeValorPago, QtRecebido, valorUnitario, valorTotalRecebido, Saldo, Fechamento, Nota, MarcaRecurso, Convenio, DataCredito, hash, TipoAtendimento ) "
    strSql = strSql & " SELECT EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, Sum(EnviadoConf.QuantidadeServiço) AS SomaDeQuantidadeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, Sum(Nz([QtdRecebido],0)) AS QtRecebido, Sum(Comparativo.valorUnitario) AS SomaDevalorUnitario, Sum(Comparativo.valorTotalRecebido) AS SomaDevalorTotalRecebido, Nz([somadevalorTotalRecebido])-Nz([valorPago]) AS Saldo, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash, EnviadoConf.TipoAtendimento"
    strSql = strSql & " FROM EnviadoConf LEFT JOIN Comparativo ON (EnviadoConf.CódGuia = Comparativo.CódGuia) AND (EnviadoConf.CódServiço = Comparativo.CódServiço) AND (EnviadoConf.Convenio = Comparativo.Convenio) WHERE EnviadoConf.CódGuia='" & Me.cboEnviados & "' AND EnviadoConf.Convenio='" & [Forms]![logon]![cboConvenio] & " GROUP BY EnviadoConf.NomeUsuário, EnviadoConf.CódUsuário, EnviadoConf.CódGuia, EnviadoConf.DtAtendimento, EnviadoConf.DtAlta, EnviadoConf.CódServiço, EnviadoConf.NomeServiço, EnviadoConf.Referencia, EnviadoConf.ValorPago, EnviadoConf.Fechamento, EnviadoConf.Nota, EnviadoConf.MarcaRecurso, EnviadoConf.Convenio, Comparativo.DataCredito, EnviadoConf.hash, EnviadoConf.TipoAtendimento"
    DoCmd.RunSQL (strSql)


    .................................................................................
    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

    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 460
    Registrado : 20/01/2014

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Qua 5 Out - 8:27

    Prezado Alexandre, bom dia!

    Usei a instrução, mas o desempenho ainda é o mesmo. Demora por volta de 30 segundos para ser executado.


    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 460
    Registrado : 20/01/2014

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Qua 5 Out - 8:52

    Amigos,

    Estava fazendo uns testes aqui e a retirei somente a parte em vermelho e a consulta executou com menos de 3 segundos. Bacana!!!

    Agora vou avaliar o impacto que esta consulta causa no banco.


    XPTOS
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 460
    Registrado : 20/01/2014

    Re: [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Sex 7 Out - 20:55

    Sem maiores impactos. Funciona bacana.

    Grato aos senhores.

      Data/hora atual: Qua 7 Dez - 14:14