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 : 470
    Registrado : 20/01/2014

    [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS em Seg 03 Out 2016, 22: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 : 539
    Registrado : 09/11/2012

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

    Mensagem  =>Nois em Ter 04 Out 2016, 01: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
    VIP
    VIP

    Respeito às Regras 100%

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

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

    Mensagem  Uilson Brasil em Ter 04 Out 2016, 04: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 : 470
    Registrado : 20/01/2014

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

    Mensagem  XPTOS em Ter 04 Out 2016, 15: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 : 470
    Registrado : 20/01/2014

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

    Mensagem  XPTOS em Ter 04 Out 2016, 23: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 : 5903
    Registrado : 05/11/2009

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

    Mensagem  Alexandre Neves em Qua 05 Out 2016, 09: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 : 470
    Registrado : 20/01/2014

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

    Mensagem  XPTOS em Qua 05 Out 2016, 13: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 : 470
    Registrado : 20/01/2014

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

    Mensagem  XPTOS em Qua 05 Out 2016, 13: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 : 470
    Registrado : 20/01/2014

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

    Mensagem  XPTOS em Sab 08 Out 2016, 01:55

    Sem maiores impactos. Funciona bacana.

    Grato aos senhores.

      Data/hora atual: Qua 18 Jan 2017, 18:11