Como optimizar o desempenho de rede do Office Access e do motor de bases de dados Jet com clientes baseados no Windows 2000 e no Windows XP

Traduções de Artigos Traduções de Artigos
Artigo: 889588 - Ver produtos para os quais este artigo se aplica.
Importante: este artigo contém informações sobre como modificar o registo. Antes de modificar o registo, certifique-se de que efectua uma cópia de segurança e de que compreende como o pode restaurar se ocorrer um problema. Para obter informações sobre como efectuar uma cópia de segurança, restaurar e editar o registo, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
256986 Descrição do registo do Microsoft Windows

Este artigo poderá conter hiperligações para conteúdo em inglês (ainda não traduzido).
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Quando executa um programa baseado no motor de bases de dados Microsoft Jet, como o Microsoft Office Access, no computador baseado no Microsoft Windows 2000 ou no Microsoft Windows XP, o programa poderá ter um desempenho lento e menor capacidade de resposta do que o previsto. Este artigo contém informações sobre como pode optimizar o desempenho de rede nos computadores baseados no Windows 2000 e no Windows XP. Ao efectuar os procedimentos descritos pode aumentar a capacidade de resposta de programas baseados no Office Access e no motor de bases de dados Jet.

INTRODUÇÃO

Depois de actualizar o computador com um sistema operativo baseado no Microsoft Windows NT 4.0 para um sistema operativo baseado no Windows 2000 ou para um sistema operativo baseado no Windows XP Professional, poderá verificar uma diminuição no desempenho do Office Access ou de aplicações baseadas no motor de bases de dados Jet. Por exemplo, poderá verificar os seguintes sintomas:
  • Um ficheiro .mdb demora mais tempo a abrir do que o previsto.
  • As consultas do Access demoram mais tempo a executar do que o previsto.
  • Abrir um formulário baseado numa tabela ligada no Access demora mais tempo do que o previsto.
  • As operações do Access, como Inserir (Insert), demoram mais tempo do que o previsto.
  • O processo para aceder aos recursos de rede demora mais tempo do que o previsto.

Mais Informação

O desempenho de rede de programas baseados no Access e no motor de bases de dados Jet depende dos seguintes critérios:
  • As definições do sistema de ficheiros do servidor de ficheiros no qual está armazenada a base de dados back-end do Access.
  • Os métodos de optimização e de colocação em cache do cliente.
  • As rotinas e métodos de programas baseados no Access ou no motor de bases de dados Jet.

Optimização do servidor de ficheiros

Os métodos que se seguem descrevem como optimizar o desempenho no servidor de ficheiros que armazena a base de dados baseada no Access ou no motor de bases de dados Jet.

Utilizar as convenções de nomenclatura de ficheiros 8.3

O Access invoca a função GetShortPathNameW através da rede em cada consulta de acrescentar se o nome de ficheiro da base de dados tiver mais do que oito caracteres ou se a base de dados estiver localizada numa pasta cujo nome tenha mais do que oito caracteres.

Este comportamento ocorre com nomes de ficheiro e de pasta que tenham mais caracteres do que os especificados pela convenção de nomenclatura de ficheiros 8.3. Nomes de ficheiro e de pasta longos podem aumentar o tempo necessário para a conclusão da consulta. Se o nome do ficheiro de base de dados ou da pasta em que está localizada a base de dados tiver mais do que oito caracteres, mude o nome do ficheiro ou da pasta. Os nomes de ficheiros e pastas não deverão ter mais do que oito caracteres e a extensão do nome de ficheiro não deverá ter mais do que três caracteres. Segue-se um exemplo de um caminho de base de dados que inclui nomes de ficheiro e de pasta curtos, de acordo com a convenção 8.3:
\Pasta_1\Pasta_2\AccessDb.mdb
Segue-se um exemplo de um caminho de base de dados que utiliza nomes de ficheiro e de pasta longos:
\PastaPrimeiraBaseDados\PastaSegundaBaseDados\Esta_BaseDeDadosGrande.mdb
Para obter mais informações sobre nomes de ficheiro longos no Windows, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
226403 Short (8.3) file names may change when copied
Em alternativa, se estiver a utilizar uma base de dados dividida, pode substituir os nomes de ficheiros e pastas das ligações de bases de dados front-end pelo equivalente da convenção 8.3. Por exemplo, suponha que tem o seguinte caminho de base de dados de nome de ficheiro e pasta longo:
\PastaPrimeiraBaseDados\PastaSegundaBaseDados\Esta_BaseDeDadosGrande.mdb
Pode mudar o nome das ligações existentes na base de dados front-end para os seguintes nomes de ficheiro e de pasta curtos equivalentes:
\Pasta~1\Pasta~2\Esta_B~1.mdb
O exemplo que se segue ilustra como ligar a uma base de dados que tenha o caminho de base de dados longo com a conversão de nome de ficheiro curto:
Function mcrLink()

    DoCmd.TransferDatabase acLink, "Microsoft Access", "\\Nome_do_servidor\nome_da_partilha\Pasta~1\Pasta~2\Esta_B~1.mdb", acTable, "tblName1", "tblName1", False

End Function


Para obter mais informações sobre como substituir os nomes de ficheiro e de pasta de ligações de bases de dados front-end pelo equivalente da convenção 8.3, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
891176 Slower performance in Access-based or Jet database-based programs after you upgrade from Windows NT 4.0 to Windows 2000 or to Windows XP
A Microsoft fornece exemplos de programação apenas a título informativo, sem garantia expressa ou implícita, incluindo, sem limitação, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador conhece a linguagem de programação apresentada e as ferramentas utilizadas para criar e depurar procedimentos. Os técnicos de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento, mas não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às necessidades específicas do utilizador.

Desactivar o atraso de notificação de violação de partilha

Pode desactivar o atraso de notificação de violação de partilha para melhorar o desempenho do servidor de ficheiros. Para o fazer, siga estes passos no servidor de ficheiros que armazena a base de dados de programa baseada no Access ou no motor de bases de dados Jet.

Aviso: poderão ocorrer problemas graves se modificar o registo de forma incorrecta utilizando o Editor de registo (Registry Editor) ou qualquer outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. A Microsoft não garante que estes problemas possam ser resolvidos. Todo e qualquer risco decorrente da modificação do registo é da responsabilidade do utilizador.
  1. Clique em Iniciar (Start), clique em Executar (Run), escreva regedit e clique em OK.
  2. Localize a seguinte subchave do registo:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. Clique com o botão direito do rato em Parameters, aponte para Novo (New), clique em Valor DWORD (DWORD Value), escreva SharingViolationDelay e prima ENTER.

    Nota: quando cria a entrada da subchave SharingViolationDelay, o valor predefinido atribuído é 0x0. É o valor pretendido.

    Se a entrada da subchave SharingViolationDelay já existir, clique com o botão direito do rato na entrada SharingViolationDelay, clique em Modificar (Modify), escreva 0 e, em seguida, clique em OK.
  4. Clique com o botão direito do rato em Parameters, aponte para Novo (New), clique em Valor DWORD (DWORD Value), escreva SharingViolationRetries e prima ENTER.

    Nota: quando cria a entrada da subchave SharingViolationRetries, o valor predefinido atribuído é 0x0. É o valor pretendido.

    Se a entrada da subchave SharingViolationRetries já existir, clique com o botão direito do rato na entrada SharingViolationRetries, clique em Modificar (Modify), escreva 0 e clique em OK.
  5. Saia do Editor de registo (Registry Editor).
Para obter mais informações sobre o atraso de notificação de violação de partilha, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
150384 Shared file access is delayed if the file is open on another computer

Mover o ficheiro da base de dados back-end para um volume de sistema de ficheiros NTFS

Se a base de dados de programa baseada no Access ou no motor de bases de dados Jet estiver localizada num volume baseado na tabela de atribuição de ficheiros (FAT, File Allocation Table), poderá melhorar o desempenho movendo o ficheiro da base de dados back-end para um volume NTFS. Para obter mais informações sobre NTFS, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
100108 Overview of FAT, HPFS, and NTFS file systems
Para obter mais informações sobre como mover ficheiros de bases de dados do Access ou do motor de bases de dados Jet, procure ?copiar ou mover um ficheiro do Access? na ajuda do Access.

Desactivar a geração automática de nomes de ficheiro curtos

Desactive a geração automática de nomes de ficheiro curtos no sistema de ficheiros NTFS. Para o fazer, siga estes passos no servidor de ficheiros que armazena a base de dados de programa baseada no Access ou no motor de bases de dados Jet. Aviso: poderão ocorrer problemas graves se modificar o registo de forma incorrecta utilizando o Editor de registo (Registry Editor) ou qualquer outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. A Microsoft não garante que estes problemas possam ser resolvidos. Todo e qualquer risco decorrente da modificação do registo é da responsabilidade do utilizador.
  1. Clique em Iniciar (Start), clique em Executar (Run), escreva regedit e clique em OK.
  2. Localize a seguinte subchave do registo:
    HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\FileSystem
  3. Clique com o botão direito do rato em NtfsDisable8dot3NameCreation, clique em Modificar (Modify), escreva 1 e clique em OK.
  4. Saia do Editor de registo (Registry Editor) e reinicie o computador.
Nota: depois de efectuar esta alteração, os ficheiros que utilizem o formato de nome curto continuarão disponíveis para programas de 32 bits. No entanto, os ficheiros com nomes de ficheiro longos criados após esta alteração poderão não estar disponíveis para programas de 16 bits.

Para obter mais informações sobre a geração automática de nomes de ficheiro curtos no NTFS, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
121007 How to disable the 8.3 name creation on NTFS partitions
Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
210638 How to disable automatic short file name generation
Se o ficheiro de base de dados do Access ou do motor de bases de dados Jet estiver localizado num servidor de ficheiros do Windows Server 2003, poderá desactivar a atribuição de aliases do sistema de ficheiros. A atribuição de aliases é uma funcionalidade incluída no Windows Server 2003. Esta funcionalidade permite que múltiplos nomes de ficheiro longos ou curtos façam referência ao mesmo ficheiro. Desactivando a atribuição de aliases do sistema de ficheiros pode melhorar o desempenho aumentando a colocação em cache do serviço de servidor disponível no computador baseado no Windows Server 2003.

Importante: não recomendamos que siga este procedimento se o computador baseado no Windows Server 2003 utilizar a atribuição de aliases do sistema de ficheiros como pontos de montagem ou de nova análise.

Para desactivar a atribuição de aliases do servidor de ficheiros, siga estes passos no servidor de ficheiros do Windows Server 2003 que armazena a base de dados do Access ou do motor de bases de dados Jet.

Aviso: poderão ocorrer problemas graves se modificar o registo de forma incorrecta utilizando o Editor de registo (Registry Editor) ou qualquer outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. A Microsoft não garante que estes problemas possam ser resolvidos. Todo e qualquer risco decorrente da modificação do registo é da responsabilidade do utilizador.
  1. Clique em Iniciar (Start), clique em Executar (Run), escreva regedit e clique em OK.
  2. Localize a seguinte subchave do registo:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  3. Clique com o botão direito do rato em Parameters, aponte para Novo (New), clique em Valor DWORD (DWORD Value), escreva NoAliasingOnFileSystem e prima ENTER.
  4. Clique com o botão direito do rato em NoAliasingOnFileSystem, clique em Modificar (Modify), escreva 1 e clique em OK.
  5. Saia do Editor de registo (Registry Editor) e reinicie o computador.

Optimização do cliente

Os métodos que se seguem descrevem como optimizar o desempenho no cliente que acederá à base de dados baseada no Access ou no motor de bases de dados Jet.

Activar a colocação em cache avançada de nomes de ficheiro

Por predefinição, os sistemas operativos baseados no Windows 2000 e no Windows XP só colocam em cache nomes curtos de ficheiro e de pasta. Ou seja, nomes de ficheiro e pasta que estejam em conformidade com a convenção 8.3. Pode activar a colocação em cache avançada no computador baseado no Windows 2000 ou no Windows XP para que também sejam colocados em cache nomes de ficheiro e de pasta longos. Este procedimento pode melhorar o desempenho quando acede a ficheiros numa rede.

Para obter mais informações sobre como activar a colocação em cache avançada no Windows XP Service Pack 1 e versões anteriores, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
834350 O acesso a recursos de rede é mais lento no Windows XP do que em versões mais antigas do Windows
Para obter mais informações sobre como activar a colocação em cache avançada no Windows 2000, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
843418 You may experience decreased performance when you access network resources or when you use Microsoft Access in Windows 2000
Nota: o Windows XP Service Pack 2 e o Windows Server 2003 já incluem um tipo de colocação em cache avançada. No entanto, tem de definir a entrada de registo InfoCacheLevel da seguinte subchave do registo com um valor hexadecimal de 0x10 para um desempenho optimizado:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MRxSmb\Parameters

Optimizar as consultas de acrescentar em computadores baseados no Windows XP

Os computadores baseados no Windows XP esvaziam a cache e escrevem a base de dados completa no servidor de ficheiros para cada transacção de acrescentar efectuada. Pode optimizar consultas de acrescentar aplicando uma correcção e alterando a entrada de registo do Windows DisableFlushOnCleanup no computador baseado no Windows XP.

Para obter mais informações sobre como optimizar consultas de acrescentar em computadores baseados no Windows XP, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
825433 Poor performance when you append data to a shared file-based database from a Windows XP-based client

Optimizar as rotinas e métodos da base de dados baseada no Access ou no motor de bases de dados Jet

As recomendações que se seguem podem melhorar o desempenho das rotinas e métodos utilizados por programas baseados no Access ou no motor de bases de dados Jet.
  • Utilize uma configuração de base de dados dividida. Uma configuração de base de dados dividida é também conhecida como uma configuração de base de dados front-end e back-end. Para obter mais informações sobre como configurar uma base de dados dividida, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    162522 Issues when you redistribute an Access application as a split database application
  • Instale o Service Pack mais recente disponível para o sistema operativo Windows nos computadores cliente e no servidor de ficheiros.
  • Instale o Jet 4.0 Service Pack 8 ou uma versão posterior no computador cliente. Para obter mais informações sobre como obter o Service Pack mais recente para o motor de bases de dados Jet, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    239114 Como obter o Service Pack mais recente para o motor de bases de dados Microsoft Jet 4.0
  • Configure todos os computadores front-end de base de dados para manterem uma ligação aberta aos ficheiros da base de dados back-end. Para o fazer, crie uma tabela no ficheiro de base de dados back-end que contenha um campo de texto e um registo. Por exemplo, crie uma tabela com a seguinte configuração:
    Nome da tabela: tblConnect
    Nome do campo: Field1
    Tipo de dados: Texto
    Primeiro registo: ?Ligação?

    Ligue esta tabela à base de dados front-end e crie um formulário baseado na tabela. Abra a base de dados utilizando um formulário oculto com a rotina de arranque. A rotina de arranque pode ser inserida numa macro ou num formulário de arranque, como indicado no exemplo que se segue:
    DoCmd.OpenForm " tblConnect",acNormal ,,,,acHidden
    Em alternativa, pode abrir um conjunto de registos baseado nesta tabela. A variável do conjunto de registos tem de ser declarada numa secção de declaração global de um módulo. Tem também de ser encerrada sempre que sair da base de dados front-end.
  • Utilize formulários em vez de tabelas, quando múltiplos utilizadores estiverem ligados à base de dados para introdução de dados.

Procedimentos recomendados para optimização do desempenho de bases de dados

Recomendamos os procedimentos que se seguem para optimização do desempenho de programas baseados no Access ou no motor de bases de dados Jet:
  • Optimize o código de programa de base de dados em módulos do Access que incluam operações que utilizem muitos recursos, como ciclos. Para o fazer, coloque o código de ciclo entre instruções BeginTrans e CommitTrans, como indicado no exemplo que se segue:
    BeginTrans Código de ciclo CommitTrans
    Isto permite que o motor de bases de dados Jet acumule múltiplas actualizações e escreva as mesmas como um único batch. Para obter mais informações sobre como optimizar código em módulos do Access, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    208858 ACC2000: Optimizing for client/server performance
  • Por predefinição, o bloqueio oportunista está activado nos clientes Windows. Certifique-se de que o bloqueio oportunista não foi desactivado no computador cliente. Para obter mais informações sobre como configurar bloqueio oportunista no Windows, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    296264 Configurar o bloqueio oportunista no Windows
    Para obter mais informações sobre desempenho e bloqueio oportunista, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
    303528 How to keep a Jet 4.0 database in top working condition
  • Ligue ao servidor de ficheiros que armazena a base de dados baseada no Access ou no motor de bases de dados Jet utilizando uma unidade mapeada em vez de um caminho UNC.
Para optimizar o desempenho da base de dados, considere migrar os programas baseados no Access ou no motor de bases de dados Jet para o Microsoft SQL Server. O modelo cliente/servidor é mais apropriado do que o modelo de servidor de ficheiros para bases de dados activas que estejam a ser utilizadas por muitas ligações. A utilização do SQL Server pode melhorar substancialmente o desempenho e aumentar a robustez.

Referências

Para obter mais informações sobre o Access, o motor de bases de dados Jet e desempenho de rede, clique nos números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft (KB, Microsoft Knowledge Base):
275085 BUG: Slow performance on linked tables in Access 2002 and Office Access 2003
261000 BUG: Slower performance on linked tables in Access 2000
209126 Information about query performance in an Access database
288631 Defragment and compact database to improve performance
209126 Information about query performance in an Access database
290181 Slow performance when user opens an object with Name AutoCorrect enabled in Microsoft Access
240434 How to improve performance of applications using Jet 4.0
289533 Onde localizar informações sobre como criar uma base de dados no Microsoft Access
870753 Description of the Jet 4.0 database engine post-837001 hotfix package: July 21, 2004
303528 How to keep a Jet 4.0 database in top working condition
208858 Optimizing for client/server performance
239114 Como obter o Service Pack mais recente para o motor de bases de dados Microsoft Jet 4.0
891176 Slower performance in Access-based or Jet database-based programs after you upgrade from Windows NT 4.0 to Windows 2000 or to Windows XP

Propriedades

Artigo: 889588 - Última revisão: 1 de dezembro de 2007 - Revisão: 5.3
A informação contida neste artigo aplica-se a:
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Media Center Edition
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Windows XP Professional 64-Bit Edition (Itanium)
Palavras-chave: 
kbnetwork kbdatabase kbperformance kbopenfile kbhowto KB889588

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