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


2 participantes

    Lentidão na migração Ms access2003 x Sql Server 2014

    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  sergiosdl 5/6/2023, 21:22

    Salve amigos
    Tenho um banco de dados rodando em access 2003 a 10 anos e Acabei de fazer a migração para o sql server 2014.
    A migração foi simples, fiquei tão empolgado que estava escrevendo um tutorial para colocar aqui no repositório.
    Porém algumas consultas ficaram extremamente lentas. embora nao ser todas, teve uma consulta seleção que era feito em 2s no access e no sql server subiu para 21s
    Minha dúvida é se fiz os procedimentos corretamente, pois li sobre conexões e fiquei com muita duvida já que usei apenas o vinculador de tabelas com odbc.
    Segue o procedimento que fiz, e gostaria que os mestres avaliassem se esta certo:

    1-Migrei os dados para o sql server através do "Microsoft sql server migration assistent access"
    2-Na estação de trabalho Criei uma fonte de dados Odbc usando o "Sql server native cliente 10.0"
    3-Na estação de trabalho vinculei todas as tabelas ao banco de dados no sql server usando a conexão odbc criada

    Com pequenas alterações tudo funcionou, apenas algumas consultas que ficaram lentas como dito acima


    Fiz varias pesquisas e não tive êxito, inclusive o link abaixo que embora eu não ter entendido, também não sei se aplica ao meu caso, já que estou com problema em consulta seleção
    https://www.maximoaccess.com/t37868-resolvidodemorando-muito-ao-fazer-update-delete-insert-into

    Abraços
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3495
    Registrado : 13/12/2016

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  Alexandre Fim 6/6/2023, 13:19

    Bom dia Sergio,

    Existem algumas variáveis neste processo de migração para o SQL Server que devem ser consideradas:

    - Apos migrar as tabelas do Access para o SQL, é necessário preservar as chaves primárias das respectivas tabelas.
    - Criar indices nas tabelas, (indice é diferente de chave primária) para que as consultas fiquem mais rápidas. Vale lembrar que o excesso de indices em uma tabela também pode ficar lento.
    - O database do SQL Server deve estar alocado em um servidor de banco de dados apropriado para esta atividade. Instalar o SQL Server em uma máquina comum não vai ajudar em nada, até porque o SQL trabalha com os núcleos de processamento do servidor.
    - É importante a normalização de dados. Um assunto que abordei algumas vezes neste fórum. É necessário verificar os tipos e tamanho das colunas das tabelas, e também a redundância de dados (a mesma informação em mais de 1 de uma tabela).
    - Você pode utilizar as Stored Procedures para criar seus SELECT/INSERT/UPDATE/DELETE pois o processamento é feito no servidor e não na máquina cliente, e a resposta é muito rápida. Se possível, utilizar a interface ADO (ActiveX Data Object) para criar suas consultas e carregar os objetos em seus formulários.

    É isso

    Espero ter ajudado.

    Att,

    Alexandre Fim




    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Lentidão na migração  Ms access2003 x Sql Server 2014  Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  sergiosdl 6/6/2023, 16:22

    Bom dia Alexandre

    Obrigado pelo retorno

    Creio que tenha feito todos estes ajustes

    Apenas em relacao a "Você pode utilizar as Stored Procedures para criar seus SELECT/INSERT/UPDATE/DELETE " que nao tenho ideia como fazer isto.

    Atualmente minhas consultas sao feitas, pelas próprias consultas do access onde apontam o critério para uma tela de formulário e também quando crio no vba coletando os dados da tela e colocando na fonte de registro do formulário ou relatório.

    Tambem pude perceber que a lentidao é quando relaciono uma tabela com outra na consulta, embora mudar de todas as maneiras as propriedades de associações ainda assim continua lento, conforme imagem
    Anexos
    Lentidão na migração  Ms access2003 x Sql Server 2014  AttachmentScreenshot_8.png
    Você não tem permissão para fazer download dos arquivos anexados.
    (18 Kb) Baixado 3 vez(es)
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  sergiosdl 7/6/2023, 16:54

    Pessoal consegui ter um ganho significativo com a consulta passagem, no entanto tenho funcões criadas no vb que não existem no sql server.
    por exemplo, uso a funcao datavencimentoreal para verificar se a data de pagamento é um dia útil, caso não for o sistema devolve o próximo dia útil

    Consulta no Access (exemplo)

    SELECT con_rec.chv_con_rec, con_rec.dia_vct, datarealvencimento([dia_vct]) AS Expr1
    FROM con_rec WHERE (((con_rec.chv_con_rec)=1));

    Agora a funcao datarealvencimento:

    Lentidão na migração  Ms access2003 x Sql Server 2014  Screen12
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3495
    Registrado : 13/12/2016

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  Alexandre Fim 7/6/2023, 19:30

    Olá Ségio,

    Quantos registros de dia útil tem na tabela?

    Vc pode utilizar a função WeekDay do Access para verificar o dia da semana, caso seja de segunda a sexta dias uteis e sabado e domingos não uteis.

    Ex:
    Lentidão na migração  Ms access2003 x Sql Server 2014  Weekda10

    Onde:
    1 = Domingo
    2 = Segunda
    3 = Terça
    4 = Quarta => conforme o exemplo acima
    5 = Quinta
    6 = Sexta
    7 = Sábado

    Sugestão: Talvez vc tenha que mudar a lógica para ficar mais rápido.

    Espero ter ajudado.

    Att,

    Alexandre Fim








    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Lentidão na migração  Ms access2003 x Sql Server 2014  Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  sergiosdl 8/6/2023, 00:15

    Obrigado pelo retorno amigo.
    o problema é que cadastrei uma tabela com os feriados existentes entao alem do sabado e domingo o sistema tem que percorrer na tabela para verificar se o dia selecionado cai em um dos dias de feriado

    Abraços
    avatar
    sergiosdl
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 143
    Registrado : 04/12/2009

    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  sergiosdl 22/6/2023, 01:52

    Amigos funcionou como uma luva utilizando as procedure e as consulta passagem, até coloquei uma dúvida aqui mas removi pois pesquisei  muito e nao consegui descobri como fazer.

    minha duvida surge se eu posso ou nao manter a conexao aberta, do tipo: Abre o aplicativo, abre a conexao e quando fechar o aplicativo fecho a conexao. ou se devo a cada comando abrir e fedchar a conexao. segue como exemplo o comando que uso para buscar a data do servidor
    Dim conn As Object
    Dim cmd As Object
    Dim dataatual As Date
    Dim horaatual As Date

    Set conn = CreateObject("ADODB.Connection")
    Set cmd = CreateObject("ADODB.Command")

    conn.ConnectionString = "Provider=SQLOLEDB;Data Source=meuservidior;Initial Catalog=minhabase;User ID=meuusuario;Password=minhasenha;"
                           
    conn.Open

    cmd.ActiveConnection = conn
    cmd.CommandText = "SELECT GETDATE() AS DataHoraAtual"

    Set rs = cmd.Execute

    If Not rs.EOF Then
       dataatual = rs("DataHoraAtual")
       horaatual = rs("DataHoraAtual")
       
       MsgBox Format(dataatual, "dd/mm/yyyy")
       MsgBox Format(horaatual, "hh🇲🇲ss")
    End If

    rs.Close
    conn.Close

    Set rs = Nothing
    Set cmd = Nothing
    Set conn = Nothing

    Conteúdo patrocinado


    Lentidão na migração  Ms access2003 x Sql Server 2014  Empty Re: Lentidão na migração Ms access2003 x Sql Server 2014

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 21:29