MS Access consulta trava do projeto em conexão com o SQL Server
-
03-07-2019 - |
Pergunta
Microsoft Access é uma maneira lisa para acessar dados em um banco de dados back-end MS SQL Server, mas eu sempre tive problemas para acessar (por assim dizer) grandes tabelas de dados, especialmente quando se tenta alternar entre os resultados e modo de design no Access .
Acesso dá-me uma série de coisas interessantes, não menos do que é Crosstabs, mas esta ligação hung para as unidades de servidor-me um pouco! Louca
Será que qualquer gurus do MS Access sabe como otimizar a conexão ODBC para que ele não está fazendo o que parece ser varreduras de tabela cheia quando eu só quero ajustar e construir minhas consultas?
Solução
O driver ODBC vai passar o máximo de trabalho possível para SQL Server, mas assim que você usar uma função vba como Nz ou sintaxe não-SQL Server como PIVOT, em seguida, o driver ODBC deve puxar para trás mais dados e índices para começar o trabalho feito no lado do cliente.
De acordo com outra resposta, quer construir seus pontos de vista em SQL Server e link para a posição nem uso o mais um projeto de acesso a dados.
NB: consultas PIVÔ com número desconhecido de colunas não podem ser tratados de SQL Server da mesma forma que o Access vai fazer isso de forma nativa - por isso, se você executar um pivô no Access com os dados do SQL Server que você provavelmente vai puxar toda a tabela de volta. consultas de articulação deve ser construído em SQL Server usando técnicas de SQL dinâmicas ou então vistas pré-salvos que têm todas as colunas codificado. Confira neste link para uma maneira de fazer isso:
Outras dicas
Como já foi dito, a única maneira de melhorar o desempenho em tabelas grandes é ter o motor de banco de dados SQL Server fazer o trabalho para você. Um método de fazer isso que não foi mencionado é usar um pass-through consulta, que irá permitir que você mantenha todo o seu código em MS Access, sem ter que criar objetos no SQL Server:
http://support.microsoft.com/kb/303968
Você terá que escrever SQL Server T-SQL em vez do dialeto Access; No entanto, SQL 2005 (quando executado em modo de compatibilidade 90) suporta um comando PIVOT.
Meu problema semelhante foi que a conexão ODBC ORACLE pendurado depois de selecionar a conexão tabela de ligação / ODBC. task manager disse não responder depois de 10 dos minutos. A conexão então pings ORACLE para todas as tabelas disponíveis. Eu tinha ativado o log on ODBC Administrador do ORACLE, por isso tive que escrever todas essas coisas para o registro, retardando qualquer resultado por talvez horas. O registro foi de 60 MB uma hora mais tarde, quando eu desliguei, então tudo estava bem!
Para desligá-lo ir para a instalação do Oracle / Administração de Rede / MS ODBC Administrador / guia rastreamento e desligá-lo!
Um bom recurso em ODBC está aqui: http: //eis.bris. ac.uk/~ccmjs/odbc_section.html
Infelizmente Access não é capaz de empurrar um monte de que o trabalho para o servidor, e sim, ele vai fazer grandes varreduras de tabela ao projetar consultas em várias tabelas ou exibições no SQL Server.
Você pode construir e consultas Tweak (vistas) em SQL Server usando SSMS e armazenar os pontos de vista em SQL Server para um aumento de desempenho enorme e ainda usar o Access para o seu front-end.