Se pesquisa frequentemente uma tabela no Access ou ordena os respetivos registos por um determinado campo, pode acelerar estas operações ao criar um índice para o campo. O Access utiliza os índices numa tabela da mesma forma que utilizaria um índice num livro: para localizar dados, o Access procura a localização dos dados no índice. Em certos casos, por exemplo, para uma chave primária, o Access cria automaticamente um índice. Noutros casos, poderá querer criar um índice manualmente.
Este artigo faz uma apresentação dos índices e explica como decidir que campos deverão ser indexados e como criar, eliminar ou alterar um índice. Explica também em que condições o Access cria automaticamente índices.
Neste artigo
Nota: Não pode utilizar os métodos descritos neste artigo para criar um índice para uma tabela numa base de dados Web. O desempenho de uma base de dados Web depende do desempenho de vários fatores, como o servidor do SharePoint que estiver a alojar a base de dados Web.
O que é um índice?
Pode utilizar um índice para ajudar o Access a localizar e ordenar os registos mais rapidamente. Um índice armazena a localização dos registos com base no campo ou nos campos que optar por indexar. Depois de o Access obter a localização a partir do índice, pode obter os dados ao aceder diretamente à localização correta. Desta forma, a utilização de um índice pode ser consideravelmente mais rápida do que analisar todos os registos para encontrar os dados.
Decidir os campos a indexar
Pode criar índices baseados num único campo ou em múltiplos campos. Provavelmente quererá indexar campos que pesquisa com frequência, campos que ordena e campos que associa a campos noutras tabelas em consultas de múltiplas tabelas. Os índices podem acelerar as pesquisas e consultas, mas podem abrandar o desempenho ao adicionar ou atualizar os dados. Quando introduz dados numa tabela que contém um ou mais campos indexados, o Access tem de atualizar os índices sempre que um registo é adicionado ou alterado. É igualmente provável que a adição de registos através de uma consulta de acréscimo ou do acréscimo de registos importados se torne mais lenta se a tabela de destino contiver índices.
Nota: A chave primária de uma tabela é indexada automaticamente.
Não pode indexar um campo cujo tipo de dados seja Objeto OLE, Calculado ou Anexo. No caso de outros campos, pondere a indexação de um campo se todas as condições abaixo forem aplicáveis:
-
O tipo de dados do campo é Texto Breve, Texto Longo, Número, Data/Hora, Numeração Automática, Moeda, Sim/Não ou Hiperligação.
-
Prevê a necessidade de procurar valores armazenados no campo.
-
Prevê a necessidade de ordenar valores no campo.
-
Prevê a necessidade de armazenar muitos valores diferentes no campo. Se muitos dos valores no campo forem iguais, o índice poderá não acelerar significativamente as consultas.
Índices de campos múltiplos
Se pensa vir a procurar ou ordenar, com frequência, dois ou mais campos em simultâneo, pode criar um índice para essa combinação de campos. Por exemplo, se costuma definir os critérios para os campos Fornecedor e NomeDoProduto na mesma consulta, faz sentido criar um índice de múltiplos campos em ambos os campos.
Quando ordena uma tabela através de um índice de múltiplos campos, o Access ordena primeiro pelo primeiro campo definido para o índice. A ordem dos campos é definida quando cria um índice de múltiplos campos. Se existirem registos com valores duplicados no primeiro campo, o Access ordena, em seguida, pelo segundo campo definido para o índice e assim sucessivamente.
Pode incluir um máximo de 10 campos num índice de múltiplos campos.
Criar um índice
Para criar um índice, tem primeiro de decidir se pretende criar um índice de campo único ou um índice de múltiplos campos. Pode criar um índice num campo único definindo a propriedade Indexado. A tabela seguinte lista as possíveis definições da propriedade Indexado.
Definição da propriedade Indexado |
Significado |
---|---|
Não |
Não cria um índice neste campo (ou elimina o índice existente) |
Sim (Duplicação Autorizada) |
Cria um índice neste campo |
Sim (Duplicação Não Autorizada) |
Cria um índice exclusivo neste campo |
Se criar um índice exclusivo, o Access não permite que introduza um novo valor no campo, se esse valor já existir no mesmo campo noutro registo. O Access cria automaticamente um índice exclusivo para chaves primárias, mas também poderá querer proibir valores duplicados noutros campos. Por exemplo, pode criar um índice exclusivo num campo que armazene números de série, para que não existam dois produtos com o mesmo número de série.
Criar um índice de campo único
-
No Painel de Navegação, clique com o botão direito do rato no nome da tabela na qual pretende criar um índice e, em seguida, clique em Vista Estrutura no menu de atalho.
-
Clique no Nome do Campo para o campo que pretende indexar.
-
Em Propriedades do Campo, clique no separador Geral.
-
Na propriedade Indexado, clique em Sim (Duplicação Autorizada) se quiser permitir duplicados ou em Sim (Duplicação Não Autorizada) para criar um índice exclusivo.
-
Para guardar as suas alterações, clique em Guardar na Barra de Ferramentas de Acesso Rápido ou prima Ctrl+G.
Criar um índice de múltiplos campos
Para criar um índice de múltiplos campos para uma tabela, inclua uma linha para cada campo no índice e inclua o nome do índice apenas na primeira linha. O Access processa todas as linhas como partes do mesmo índice até encontrar uma linha com outro nome de índice. Para inserir uma linha, clique com o botão direito do rato na localização em que pretende inserir uma linha e, em seguida, clique em Inserir Linhas no menu de atalho.
-
No Painel de Navegação, clique com o botão direito do rato no nome da tabela na qual pretende criar um índice e, em seguida, clique em Vista Estrutura no menu de atalho.
-
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Índices.
A janela Índices é apresentada. Redimensione a janela para que apareçam algumas linhas em branco e sejam apresentadas as propriedades do índice.
-
Na coluna Nome do Índice, na primeira linha em branco, escreva um nome para o índice. Pode atribuir o nome de um dos campos do índice ao índice que pretende criar ou utilizar outro nome.
-
Na coluna Nome do Campo, clique na seta e, em seguida, clique no primeiro campo que pretende utilizar para o índice.
-
Na linha seguinte, deixe a coluna Nome do Índice em branco e, em seguida, na coluna Nome do Campo, clique no segundo campo para o índice. Repita este passo até selecionar todos os campos que pretende incluir no índice.
-
Para alterar a sequência de ordenação dos valores do campo, na coluna Sequência de Ordenação da janela Índices, clique em Ascendente ou Descendente. A sequência de ordenação predefinida é Ascendente.
-
Na janela Índices, em Propriedades do Índice, defina as propriedades do índice para a linha na coluna Nome do Índice que contém o nome do índice. Defina as propriedades de acordo com a seguinte tabela.
Etiqueta
Valor
Primária
Se Sim for definido, o índice corresponde à chave primária.
Exclusivo
Se Sim for definido, cada valor no índice terá de ser exclusivo.
Ignorar Valores Nulos
Se Sim for definido, os registos com valor Nulo nos campos indexados são excluídos do índice.
-
Para guardar as suas alterações, clique em Guardar na Barra de Ferramentas de Acesso Rápido ou prima Ctrl+S.
-
Feche a janela Índices.
Eliminar um índice
Se um índice se tornar desnecessário ou tiver um impacto excessivo no desempenho, pode eliminá-lo. Quando elimina um índice, remove apenas o índice e não o campo ou os campos em que este está incorporado.
-
No Painel de Navegação, clique com o botão direito do rato no nome da tabela da qual pretende eliminar um índice e, em seguida, clique em Vista Estrutura no menu de atalho.
-
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Índices.
A janela Índices é apresentada. Redimensione a janela para que apareçam algumas linhas em branco e sejam apresentadas as propriedades do índice.
-
Na janela Índices, selecione a linha ou as linhas que contêm o índice que pretende eliminar e, em seguida, prima DELETE.
-
Para guardar as suas alterações, clique em Guardar na Barra de Ferramentas de Acesso Rápido ou prima Ctrl+S.
-
Feche a janela Índices.
Ver e editar índices
Poderá querer ver os índices de uma tabela para avaliar o respetivo impacto no desempenho ou para garantir que campos específicos estão indexados.
-
No Painel de Navegação, clique com o botão direito do rato no nome da tabela em que pretende editar um índice e, em seguida, clique em Vista Estrutura no menu de atalho.
-
No separador Estrutura, no grupo Mostrar/Ocultar, clique em Índices.
A janela Índices é apresentada. Redimensione a janela para que apareçam algumas linhas em branco e sejam apresentadas as propriedades do índice.
-
Visualize ou edite os índices e as propriedades dos índices de acordo com as suas necessidades.
-
Para guardar as suas alterações, clique em Guardar na Barra de Ferramentas de Acesso Rápido ou prima Ctrl+S.
-
Feche a janela Índices.
Criação automática de índices
Em alguns casos, o Access cria automaticamente os índices. Por exemplo, é criado automaticamente um índice para qualquer campo ou campos designados como chave primária de uma tabela.
Outra situação de criação automática de índices é a opção Indexar Automaticamente ao Importar/Criar na caixa de diálogo Opções do Access. O Access indexa automaticamente todos os campos com nomes que comecem ou terminem com os carateres introduzidos na caixa Indexar Automaticamente ao Importar/Criar, por exemplo ID, chave, código ou núm. Para ver ou alterar a definição atual, execute os seguintes passos:
-
Clique em Ficheiro > Opções.
-
Clique em Estruturadores de Objetos e, em seguida, em Estrutura da tabela, adicione, edite ou remova os valores na caixa Indexar Automaticamente ao Importar/Criar. Utilize um ponto e vírgula (;) para separar os valores.
Nota: Se um nome de campo começar ou terminar com um valor listado na caixa, o campo será indexado automaticamente.
-
Clique em OK.
Uma vez que cada índice adicional necessita que o Access execute trabalho adicional, o desempenho diminui ao adicionar ou atualizar dados. Por essa razão, poderá querer considerar a alteração dos valores apresentados na caixa Indexar Automaticamente ao Importar/Criar ou reduzir o número de valores, de modo a minimizar o número de índices criados.