ACC2000: Optimizar para desempenho do cliente/servidor

Traduções de Artigos Traduções de Artigos
Artigo: 208858 - Ver produtos para os quais este artigo se aplica.
Avançado: Requer conhecimentos avançados sobre codificação, interoperabilidade e multi-utilizador.

Este artigo aplica-se apenas a uma base de dados do Microsoft Access (.mdb).

Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo apresenta sugestões para optimizar o desempenho de origens de dados de interligação de bases de dados abertas (ODBC, Open Database CONNECTIVITY) no Microsoft Access.

Nota : Este artigo pressupõe que está familiarizado com ambientes de cliente/servidor e arquitecturas.

Mais Informação

Métodos de acesso a dados

Para aceder a dados do servidor com uma aplicação cliente/servidor, pode utilizar um ou mais dos seguintes métodos:

  • Tabelas ligadas e vistas
  • Consultas pass-through SQL para enviar instruções SQL directamente para o servidor
  • Um projecto do Access

Tabelas e vistas ligados

A forma mais eficiente para processar dados do servidor é ligar tabelas e vistas a partir do servidor. O Microsoft Access armazena informações de campo e o índice para tabelas ligadas. Isto melhora o desempenho quando abre as tabelas.

Nota : Se efectuar alterações a campos ou índices no servidor, tem de ligar novamente as remotos tabelas do Access.

Executar consultas SQL pass-through

Muitas aplicações, pode criar consultas de Microsoft Access com base em tabelas remotas e também criar consultas SQL pass-through. Consultas pass-through oferecem as seguintes vantagens:
  • O Microsoft Access não compilar uma consulta pass-through. Envia a consulta directamente para o servidor ODBC. Isto acelera a aplicação.
  • Acesso envia a consulta pass-through para o servidor exactamente como foi introduzido. Por conseguinte, mais processamento ocorre no servidor e menos dados são trocados através da rede.
  • Formulários, relatórios e consultas do Microsoft Access podem ser baseadas em consultas pass-through utilizando tabelas ODBC ligada.
  • Pode utilizar funcionalidades específicas do SQL Server, (tais como procedimentos armazenados e funções intrínsecas do baseada no servidor), que tem não equivalente no código.
  • Actualizar, eliminar e acrescentar pass-through acção as consultas são muito mais rápidas do que consultas de acção com base em tabelas ligadas remotos, especialmente quando muitos registros forem afetados.
As consultas pass-through têm as seguintes desvantagens:
  • Consulta SQL pass-through devolve sempre um snapshot que não pode ser actualizado. Uma consulta do Microsoft Access normalmente devolve um dynaset que reflecte as alterações de outros utilizadores e pode ser actualizada.
  • É necessário escrever os comandos directamente para a janela consulta SQL pass-through com a sintaxe que requer o servidor. Não é possível estruturar consultas pass-through na grelha de estrutura da consulta.
  • Se necessitar de um parâmetro com uma consulta pass-through, tem de executar a consulta em código e modificar propriedades SQL da consulta. Para obter informações adicionais e um exemplo de como modificar a propriedade SQL, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
    232493ACC2000: Como simular parâmetros na consulta SQL pass-through

Pedir menos dados a partir do servidor

Pedir dados os custos de servidor de tempo de processamento. Para optimizar o desempenho, solicitar apenas os registos e campos que necessita.

Reduza o número de controlos dependentes, tais como caixas de texto, caixas de combinação, caixas de listagem e subformulários. Quando um formulário é aberto, cada um destes controlos envia uma consulta separada para o servidor.

Se as tabelas ODBC ligadas tem campos de objecto de Memo ou OLE, pode definir a propriedade visível dos campos para não e adicionar um botão de alternar para definir a propriedade visível como Sim para que os utilizadores podem optar por visualizá-lo.

Algumas tabelas ligadas não são alterados frequentemente. Por exemplo, uma tabela contendo os nomes e abreviaturas dos 50 estados não irá alterar frequentemente. Pode acelerar a carregar do formulário e reduzir a carga do servidor, guardando uma cópia local destas tabelas. Também pode fornecer uma forma de actualizar a cópia local com dados mais recentes a partir do servidor.

Optimizar consultas

O método principal para optimizar as consultas (depois de adicionar índices adequados no servidor) é garantir que o processamento é efectuada no servidor. Deve evitar a funcionalidade que não é suportada pelo servidor, tais como funções específicas para o Microsoft Access ou funções definidas pelo utilizador. Para obter informações detalhadas sobre o que tem de ser processado localmente, consulte a documentação técnica conectividade ODBC motor da base de dados do Microsoft Jet (para obter mais informações sobre esta documentação técnica, consulte a secção "Microsoft Jet da base de dados motor ODBC conectividade documentação técnica White Paper" mais adiante neste artigo).

Para ver a instrução SELECT que está a ser enviada ao servidor, pode definir o TraceSQLMode definição. Para definir, siga estes passos:
  1. Clique em Iniciar e, em seguida, clique em Executar .
  2. Na caixa de diálogo Abrir , escreva Regedit .
  3. Expanda da subárvore HKEY_LOCAL_MACHINE até localizar a subchave SOFTWARE\Microsoft\Jet\4.0\Engines.
  4. Clique em motores .
  5. Se o valor de TraceSQLMode não aparecer no painel da direita, clique em Novo no menu Editar e em seguida, clique em Valor DWORD (DWORD Value) .
  6. Em nome no painel da direita, escreva TraceSQLMode para o novo valor.
  7. Com o novo valor ainda seleccionado, clique em Modificar no menu Editar .
  8. Em base , seleccione decimal . Na caixa dados do valor , escreva 1 e, em seguida, clique em OK .
Para obter mais informações sobre a definição TraceSQLMode, clique em Ajuda do Microsoft Access no menu Ajuda, escreva "TraceSQLMode" no Assistente do Office ou no Assistente de respostas e, em seguida, clique em Procurar para visualizar o tópico.

Definição de TryJetAuth

O TryJetAuth definição controlos se o Microsoft Access tenta, pela primeira vez, iniciar sessão ao servidor utilizando o ID de início de sessão do Microsoft Access e palavra-passe. (Por predefinição, o ID de início de sessão do Microsoft Access é "admin" e a palavra-passe está em branco.) Se isto falhar, o Access Microsoft pede-lhe um ID de início de sessão e palavra-passe. A menos que tenha configurado o Microsoft Access para utilizar o mesmo ID de início de sessão e palavra-passe como o servidor ODBC, adicione a linha "TryJetAuth = 0 à chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth do registo. Isto evita que o Microsoft Access tentar iniciar sessão com o ID ' incorrecto. Para o fazer, siga estes passos:
  1. Clique em Iniciar e, em seguida, clique em Executar .
  2. Na caixa de diálogo Abrir , escreva Regedit .
  3. Localize da subárvore HKEY_LOCAL_MACHINE.
  4. Expanda da subárvore HKEY_LOCAL_MACHINE até localizar a seguinte subchave:
    SOFTWARE\Microsoft\Jet\4.0\ODBC\TryJetAuth
  5. Clique em motores .
  6. Se o valor de TryJetAuth não existir, clique em Novo no menu Editar e em seguida, clique em Valor DWORD (DWORD Value) .
  7. Em nome no painel da direita, escreva TryJetAuth para o novo valor.
  8. Com o novo valor ainda seleccionado, clique em Modificar no menu Editar .
  9. Em base , seleccione decimal . Na caixa dados do valor , escreva 1 e, em seguida, clique em OK .

Carimbos de data/hora

Em servidores que suportem-las como o Microsoft SQL Server, campos de carimbo de data/hora tornar registos de actualização mais eficaz. Campos de carimbo de data/hora são mantidos pelo servidor e são actualizados sempre que o registo é actualizado.

Se tiver um campo de carimbo de data/hora, o Microsoft Access terá de verificar apenas o índice exclusivo e a carimbo de data/hora do campo para ver se o registo foi alterado desde que a última obtido do servidor. Caso contrário, o Microsoft Access tem Verifique todos os campos no registo. Se adicionar um campo de carimbo de data/hora para uma tabela ligada, voltar a ligar a tabela para informar o Microsoft Access do novo campo.

Transacções

A utilizar transacções no Visual Basic for Applications (VBA) quando actualizar ou inserir registos em tabelas ligadas pode melhorar o desempenho. Transacções de activar o motor de base de dados Jet acumular múltiplas actualizações e escreve como um único batch. Com o Microsoft SQL Server, manter transacções curtas porque geram bloqueios impedir que outros utilizadores leiam dados afectados pela transacção actual. Apesar de pode aninhar transacções com VBA, a maior parte dos servidores não são suportadas transacções aninhadas. O Microsoft Access envia apenas a transacção de primeiro nível para o servidor.

Optimizar conjuntos de registos e código

Pode armazenar todo ou parte dos dados contidos nos objectos de conjunto de registos do tipo Dynaset na memória local definindo as propriedades CacheSize e CacheStart .

O tamanho da cache pode ser entre 5 e 1200 registos. Se o tamanho da cache exceder a memória disponível, os registos em excesso spill num ficheiro temporário do disco. Aplicar o método FillCache preenche a cache com dados do servidor. Para recuperar a memória cache, defina a propriedade CacheSize para zero.

Com variáveis de conjunto de registos, implemente a funcionalidade que necessita. Por exemplo, adicione a opção dbAppendOnly com o método OpenRecordset se apenas necessitar de adicionar novos registos para um conjunto de registos. Se não for necessário editar ou actualizar capacidade, basear os conjuntos de registos SQL consultas pass-through. O método mais rápido para inserir e actualizar registos consiste em utilizar consultas SQL pass-through no código.

Tabela MSysConf

Pode criar uma tabela com o nome MSysConf no seu servidor para população de fundo do controlo (a taxa em que o Microsoft Access lê registos do servidor durante o tempo inactivo). Com esta tabela, pode definir o número de linhas de dados que são obtidos de uma só vez e o número de segundos de intervalo entre cada obtenção. Se tiver excessiva leitura-bloqueio no servidor, pode ajustar as definições de tabela para aumentar a velocidade da população de fundo. Se a muito tráfego de rede é gerado pelo população de fundo, pode ajustar as definições para reduzir a velocidade.

Microsoft Jet da base de dados motor ODBC conectividade White Paper

Uma origem importante para obter informações adicionais é a documentação técnica "Jet Database Engine ODBC Connectivity". Este documento foi escrito para Jet 3.0; no entanto, esta informação ainda se aplica ao Jet 4.0. Este documento explica o motor de base de dados Microsoft Jet 3.0 e o modo como utiliza ODBC. A documentação técnica pode ser transferida a partir do seguinte Web site da Microsoft:
http://download.microsoft.com/download/access95/whitep5/1/W98/EN-US/Rjwpv3.exe

Um projecto do Access

Um projecto do Access utiliza OLEDB para ligar ao Microsoft SQL Server 6.5 ou 7.0. Se todas as tabelas na base de dados Access forem tabelas ligadas para SQL Server, para melhorar o desempenho em vez disso, pode criar um projecto do Access. No entanto, se a base de dados contiver quaisquer tabelas do Access, esta opção não é possível.

Propriedades

Artigo: 208858 - Última revisão: 29 de março de 2007 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Access 2000 Standard Edition
Palavras-chave: 
kbmt kbdownload kbhowto kbusage KB208858 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 208858

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com