MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

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


4 participantes

    [Resolvido]Melhorar desempenho de consulta por VBA.

    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Melhorar desempenho de consulta por VBA. Empty [Resolvido]Melhorar desempenho de consulta por VBA.

    Mensagem  XPTOS 3/10/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
    =>Nois
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  =>Nois 4/10/2016, 01:04

    nao tem anexo


    .................................................................................
    Att. Nois

    Se tudo não der certo... tente de novo drunken
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Uilson Brasil 4/10/2016, 04:43

    Faltou o código ...


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 4/10/2016, 15:30

    Vou postar um anexo com a parte do código envolvido.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 4/10/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,
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alexandre Neves 5/10/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
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 5/10/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
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 5/10/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
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  XPTOS 8/10/2016, 01:55

    Sem maiores impactos. Funciona bacana.

    Grato aos senhores.

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 09:22