Precisa de ajuda com o Access Database com Front End e Back End realmente lento com mais de 1 usuário

2

Tivemos um consultor instalando um banco de dados para um cliente baseado no Access 2007 com um front-end (em cada estação de trabalho) e eu acho que o banco de dados back end (no servidor de arquivos, é um controlador de domínio do servidor 2003 com hardware muito atual, memória etc ...).

Quando lançamos o banco de dados a partir da estação de trabalho, obtemos nossa típica tela de login, quando um usuário efetua login e há apenas um usuário na interface do banco de dados, a coisa toda voa muito rápido, etc. p>

Assim que outro usuário efetua login na interface ou no programa do banco de dados, tudo fica lento e latente. Pressionamentos de tecla em caixas de campo demoram a aparecer, por exemplo, se você digitar a palavra "localizar", o f apareceria cerca de 10 segundos depois, o "i" apareceria e 10 segundos depois, "n" e "d".

A empresa atual que vendeu o banco de dados para nós está sugerindo uma abordagem de tentativa e erro e não estou interessado em invadir o registro no servidor apenas para ver se isso faz diferença.

Estou precisando desesperadamente de ajuda, pois não tenho tempo ou interesse em bancos de dados, por favor, todas as sugestões são bem-vindas neste momento.

Apenas para notar, a rede não tem problemas de cabeamento para comutadores para outras conexões. Usando qualquer uma das estações de trabalho para a navegação do servidor de arquivos e abertura de arquivos, e-mail, internet etc todos trabalham muito rapidamente. A única coisa que deixa de funcionar é o banco de dados.

    
por dasko 20.07.2010 / 23:52

3 respostas

1

Bem-vindo aos bancos de dados baseados no Microsoft Access e à "tecnologia" do banco de dados de arquivos compartilhados em geral. Felizmente, os problemas atuais estão relacionados principalmente à velocidade (enquanto que, com versões anteriores do sistema operacional Windows, pode ocorrer corrupção de dados).

Você está vendo a lentidão imensa porque o servidor precisa ter muito mais cuidado ao conceder bloqueios a clientes quando mais de um cliente acessa o mesmo arquivo de banco de dados. Quando apenas um único cliente está acessando um arquivo, o servidor pode permitir que o cliente obtenha "bloqueios oportunistas" e armazenar em cache mais dados localmente. Vários clientes tornam a situação muito mais rigorosa para o computador servidor, porque a consistência entre os clientes em relação ao conteúdo aparente do arquivo deve ser mantida.

Você pode obter algum desempenho incremental jogando com as configurações no "Serviço do servidor" (LanManServer) no computador servidor, mas nunca verá o mesmo desempenho com vários usuários como faria com um usuário único.

Se você realmente deseja que isso funcione bem, recomendo avaliar a possibilidade de "fazer o upsizing" do banco de dados back-end no SQL Express ou em outro mecanismo de banco de dados cliente / servidor verdadeiro. Se o "back-end" é apenas uma coleção de tabelas que o "front-end" está usando a funcionalidade "tabelas de links" para acessar, então é um bom candidato para migrar para uma instância do SQL Express. O consultor não precisaria fazer muito mais do que usar o SQL Server Migration Asstant para Microsoft Access .

Além de ser cliente / servidor e, portanto, muito mais rápido, o SQL Express também oferece uma boa maneira de realizar backups online (enquanto os usuários estão usando ativamente o banco de dados). Os usuários podem "esquecer" de fechar o aplicativo e você ainda obterá backups, enquanto que, com o Access, o arquivo de back-end será "bloqueado" e indisponível para backup.

A lista de vantagens que você obteria usando o SQL Server / SQL Express no back-end é muito longa para apresentar aqui, embora eu suspeite que o seu consultor não esteja familiarizado com eles, já que eles não se preocuparam em use o SQL Server / SQL Express para começar. Você pode querer considerar obter outro consultor se decidir expandir / aprimorar o aplicativo posteriormente.

    
por 21.07.2010 / 00:09
3

Minhas desculpas por não ter analisado a falha do servidor por questões do MS Access.

1) Este é um problema bem conhecido com uma solução simples dentro da comunidade do MS Access. Duvido da competência técnica do consultor ou desenvolvedor do aplicativo Access se eles não estiverem cientes do problema e da solução.

2) Veja a página Acc do Performance FAQ que mantive desde aproximadamente 1997. Em particular, o primeiro link sobre o bloqueio do LDB resolverá o problema com o segundo usuário tornando o aplicativo lento.

    
por 25.08.2010 / 05:01
1

Você pode querer instalar o SQL Server Express , que é gratuito e tem um limite de tamanho de banco de dados de 10 GB - substancialmente maior que o Access - no DC e vincula as tabelas individuais ao front-end do Access por meio do ODBC. Você provavelmente obterá um desempenho muito melhor dessa maneira para vários usuários, e o Access poderá ser um usuário de rede, mesmo para um usuário, da maneira como você está atualmente configurado.

    
por 21.07.2010 / 00:15